xref: /aoo41x/main/xmloff/inc/txtfldi.hxx (revision dec99bbd)
1ecfe53c5SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3ecfe53c5SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4ecfe53c5SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5ecfe53c5SAndrew Rist  * distributed with this work for additional information
6ecfe53c5SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7ecfe53c5SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8ecfe53c5SAndrew Rist  * "License"); you may not use this file except in compliance
9ecfe53c5SAndrew Rist  * with the License.  You may obtain a copy of the License at
10ecfe53c5SAndrew Rist  *
11ecfe53c5SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12ecfe53c5SAndrew Rist  *
13ecfe53c5SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14ecfe53c5SAndrew Rist  * software distributed under the License is distributed on an
15ecfe53c5SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16ecfe53c5SAndrew Rist  * KIND, either express or implied.  See the License for the
17ecfe53c5SAndrew Rist  * specific language governing permissions and limitations
18ecfe53c5SAndrew Rist  * under the License.
19ecfe53c5SAndrew Rist  *
20ecfe53c5SAndrew Rist  *************************************************************/
21ecfe53c5SAndrew Rist 
22ecfe53c5SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir /** @#file
25cdf0e10cSrcweir  *
26cdf0e10cSrcweir  *  import of all text fields
27cdf0e10cSrcweir  *  (except variable related + database display field: see txtvfldi.hxx)
28cdf0e10cSrcweir  */
29cdf0e10cSrcweir 
30cdf0e10cSrcweir #ifndef _XMLOFF_TXTFLDI_HXX
31cdf0e10cSrcweir #define _XMLOFF_TXTFLDI_HXX
32cdf0e10cSrcweir 
33cdf0e10cSrcweir #include <com/sun/star/uno/Reference.h>
34cdf0e10cSrcweir #include <com/sun/star/text/PageNumberType.hpp>
35cdf0e10cSrcweir #include <com/sun/star/util/DateTime.hpp>
36cdf0e10cSrcweir #include <com/sun/star/util/Date.hpp>
37cdf0e10cSrcweir #include <xmloff/xmlictxt.hxx>
38cdf0e10cSrcweir #include <xmloff/txtimp.hxx>
39cdf0e10cSrcweir #include <rtl/ustrbuf.hxx>
40cdf0e10cSrcweir #include <tools/debug.hxx>
41cdf0e10cSrcweir 
42cdf0e10cSrcweir 
43cdf0e10cSrcweir 
44cdf0e10cSrcweir namespace com { namespace sun { namespace star {
45cdf0e10cSrcweir 	namespace xml { namespace sax { class XAttributeList; } }
46cdf0e10cSrcweir 	namespace text { class XTextField; }
47cdf0e10cSrcweir 	namespace beans { class XPropertySet; struct PropertyValue; }
48cdf0e10cSrcweir } } }
49cdf0e10cSrcweir 
50cdf0e10cSrcweir namespace rtl
51cdf0e10cSrcweir {
52cdf0e10cSrcweir 	class OUString;
53cdf0e10cSrcweir }
54cdf0e10cSrcweir 
55cdf0e10cSrcweir 
56cdf0e10cSrcweir class SvXMLImport;
57cdf0e10cSrcweir class XMLTextImportHelper;
58cdf0e10cSrcweir class SvXMLTokenMap;
59cdf0e10cSrcweir 
60cdf0e10cSrcweir 
61cdf0e10cSrcweir 
62cdf0e10cSrcweir 
63cdf0e10cSrcweir enum XMLTextFieldAttrTokens
64cdf0e10cSrcweir {
65cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_FIXED = 0,
66cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_DESCRIPTION,
67cdf0e10cSrcweir     XML_TOK_TEXTFIELD_HELP,
68cdf0e10cSrcweir     XML_TOK_TEXTFIELD_HINT,
69cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_PLACEHOLDER_TYPE,
70cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_TIME_ADJUST,
71cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_DATE_ADJUST,
72cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_PAGE_ADJUST,
73cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_SELECT_PAGE,
74cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_ACTIVE,
75cdf0e10cSrcweir 
76cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_NAME,
77cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_FORMULA,
78cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_NUM_FORMAT,
79cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_NUM_LETTER_SYNC,
80cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_DISPLAY_FORMULA,
81cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_NUMBERING_LEVEL,
82cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_NUMBERING_SEPARATOR,
83cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_DISPLAY,
84cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_OUTLINE_LEVEL,
85cdf0e10cSrcweir 
86cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_VALUE_TYPE,
87cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_VALUE,
88cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_STRING_VALUE,
89cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_DATE_VALUE,
90cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_TIME_VALUE,
91cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_BOOL_VALUE,
92cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_CURRENCY,
93cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_DATA_STYLE_NAME,
94cdf0e10cSrcweir 
95cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_DATABASE_NAME,
96cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_TABLE_NAME,
97cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_COLUMN_NAME,
98cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_ROW_NUMBER,
99cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_CONDITION,
100cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_STRING_VALUE_IF_TRUE,
101cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_STRING_VALUE_IF_FALSE,
102cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_REVISION,
103cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_IS_HIDDEN,
104cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_CURRENT_VALUE,
105cdf0e10cSrcweir 
106cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_REFERENCE_FORMAT,
107cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_REF_NAME,
108cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_CONNECTION_NAME,
109cdf0e10cSrcweir 
110cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_HREF,
111cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_TARGET_FRAME,
112cdf0e10cSrcweir 
113cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_OFFICE_CREATE_DATE,
114cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_OFFICE_AUTHOR,
115cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_ANNOTATION,
116cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_LANGUAGE,
117cdf0e10cSrcweir 
118cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_MEASURE_KIND,
119cdf0e10cSrcweir     XML_TOK_TEXTFIELD_TABLE_TYPE,
120cdf0e10cSrcweir 
121cdf0e10cSrcweir     XML_TOK_TEXTFIELD_NOTE_CLASS,
122cdf0e10cSrcweir 
123cdf0e10cSrcweir 	XML_TOK_TEXTFIELD_UNKNOWN
124cdf0e10cSrcweir };
125cdf0e10cSrcweir 
126cdf0e10cSrcweir 
127cdf0e10cSrcweir 
128cdf0e10cSrcweir 
129cdf0e10cSrcweir 
130cdf0e10cSrcweir /// abstract class for text field import
131cdf0e10cSrcweir class XMLTextFieldImportContext : public SvXMLImportContext
132cdf0e10cSrcweir {
133cdf0e10cSrcweir 	const ::rtl::OUString sIsFixed;
134cdf0e10cSrcweir 
135cdf0e10cSrcweir 	// data members
136cdf0e10cSrcweir 	::rtl::OUStringBuffer sContentBuffer;	/// collect character data
137cdf0e10cSrcweir 	::rtl::OUString sContent;				/// character data after collection
138cdf0e10cSrcweir 	::rtl::OUString sServiceName;			/// service name for text field
139cdf0e10cSrcweir 	XMLTextImportHelper& rTextImportHelper;	/// the import helper
140cdf0e10cSrcweir 
141cdf0e10cSrcweir protected:
142cdf0e10cSrcweir 	::rtl::OUString sServicePrefix;
143cdf0e10cSrcweir 
144cdf0e10cSrcweir 	// data members for use in subclasses
145cdf0e10cSrcweir 	sal_Bool bValid;						/// ist dieses Feld g�ltig?
146cdf0e10cSrcweir 
147cdf0e10cSrcweir public:
148cdf0e10cSrcweir 
149cdf0e10cSrcweir 	TYPEINFO();
150cdf0e10cSrcweir 
151cdf0e10cSrcweir 	XMLTextFieldImportContext(
152cdf0e10cSrcweir 		SvXMLImport& rImport,					/// XML Import
153cdf0e10cSrcweir 		XMLTextImportHelper& rHlp,				/// Text import helper
154cdf0e10cSrcweir 		const sal_Char* pService,				/// name of SO API service
155cdf0e10cSrcweir 		sal_uInt16 nPrfx,						/// namespace prefix
156cdf0e10cSrcweir 		const ::rtl::OUString& rLocalName);		/// element name w/o prefix
157cdf0e10cSrcweir 
158cdf0e10cSrcweir 	virtual ~XMLTextFieldImportContext();
159cdf0e10cSrcweir 
160cdf0e10cSrcweir 	/// process character data: will be collected in member sContentBuffer
161cdf0e10cSrcweir 	virtual void Characters( const ::rtl::OUString& sContent );
162cdf0e10cSrcweir 
163cdf0e10cSrcweir 	/// parses attributes and calls ProcessAttribute
164cdf0e10cSrcweir 	virtual void StartElement(
165cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
166cdf0e10cSrcweir 		::com::sun::star::xml::sax::XAttributeList> & xAttrList);
167cdf0e10cSrcweir 
168cdf0e10cSrcweir 	/// create XTextField and insert into document; calls PrepareTextField
169cdf0e10cSrcweir 	virtual void EndElement();
170cdf0e10cSrcweir 
171cdf0e10cSrcweir 	/// create the appropriate field context from
172cdf0e10cSrcweir 	/// (for use in paragraph import)
173cdf0e10cSrcweir 	static XMLTextFieldImportContext* CreateTextFieldImportContext(
174cdf0e10cSrcweir 		SvXMLImport& rImport,
175cdf0e10cSrcweir 		XMLTextImportHelper& rHlp,
176cdf0e10cSrcweir 		sal_uInt16 nPrefix,
177cdf0e10cSrcweir 		const ::rtl::OUString& rName,
178cdf0e10cSrcweir 		sal_uInt16 nToken);
179cdf0e10cSrcweir 
180cdf0e10cSrcweir 
181cdf0e10cSrcweir protected:
182cdf0e10cSrcweir 
183cdf0e10cSrcweir 	/// get helper
GetImportHelper()184cdf0e10cSrcweir 	inline XMLTextImportHelper& GetImportHelper() { return rTextImportHelper; }
185cdf0e10cSrcweir 
GetServiceName()186cdf0e10cSrcweir 	inline ::rtl::OUString GetServiceName() { return sServiceName; }
SetServiceName(::rtl::OUString sStr)187cdf0e10cSrcweir 	inline void SetServiceName(::rtl::OUString sStr) { sServiceName = sStr; }
188cdf0e10cSrcweir 
189cdf0e10cSrcweir 	::rtl::OUString GetContent();
190cdf0e10cSrcweir 
191cdf0e10cSrcweir 	/// process attribute values
192cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
193cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue ) = 0;
194cdf0e10cSrcweir 
195cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
196cdf0e10cSrcweir 	virtual void PrepareField(
197cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
198cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet) = 0;
199cdf0e10cSrcweir 
200cdf0e10cSrcweir 	/// create field from ServiceName
201cdf0e10cSrcweir 	sal_Bool CreateField(::com::sun::star::uno::Reference<
202cdf0e10cSrcweir 						 ::com::sun::star::beans::XPropertySet> & xField,
203cdf0e10cSrcweir 						 const ::rtl::OUString& sServiceName);
204cdf0e10cSrcweir 
205cdf0e10cSrcweir 	/// force an update of the field's value
206cdf0e10cSrcweir 	/// call update on optional XUptadeable interface; (disable Fixed property)
207cdf0e10cSrcweir 	void ForceUpdate(
208cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
209cdf0e10cSrcweir 			::com::sun::star::beans::XPropertySet> & rPropertySet);
210cdf0e10cSrcweir };
211cdf0e10cSrcweir 
212cdf0e10cSrcweir 
213cdf0e10cSrcweir 
214cdf0e10cSrcweir class XMLSenderFieldImportContext : public XMLTextFieldImportContext
215cdf0e10cSrcweir {
216cdf0e10cSrcweir 
217cdf0e10cSrcweir 	sal_Int16 nSubType;			/// API subtype for ExtUser field
218cdf0e10cSrcweir 
219cdf0e10cSrcweir 	const ::rtl::OUString sEmpty;		/// empty string
220cdf0e10cSrcweir 	const ::rtl::OUString sPropertyFixed;
221cdf0e10cSrcweir 	const ::rtl::OUString sPropertyFieldSubType;
222cdf0e10cSrcweir 	const ::rtl::OUString sPropertyContent;
223cdf0e10cSrcweir 
224cdf0e10cSrcweir protected:
225cdf0e10cSrcweir 
226cdf0e10cSrcweir 	// variables for access in subclass
227cdf0e10cSrcweir 	sal_Bool bFixed;
228cdf0e10cSrcweir 	sal_uInt16 nElementToken;	/// token for this elment field
229cdf0e10cSrcweir 
230cdf0e10cSrcweir public:
231cdf0e10cSrcweir 
232cdf0e10cSrcweir 	TYPEINFO();
233cdf0e10cSrcweir 
234cdf0e10cSrcweir 	XMLSenderFieldImportContext(
235cdf0e10cSrcweir 		SvXMLImport& rImport,					/// XML Import
236cdf0e10cSrcweir 		XMLTextImportHelper& rHlp,				/// Text import helper
237cdf0e10cSrcweir 		sal_uInt16 nPrfx,						/// namespace prefix
238cdf0e10cSrcweir 		const ::rtl::OUString& sLocalName,		/// element name w/o prefix
239cdf0e10cSrcweir 		sal_uInt16 nToken);						/// element token
240cdf0e10cSrcweir 
241cdf0e10cSrcweir protected:
242cdf0e10cSrcweir 
243cdf0e10cSrcweir 	/// start element
244cdf0e10cSrcweir 	virtual void StartElement(
245cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
246cdf0e10cSrcweir 		::com::sun::star::xml::sax::XAttributeList> & xAttrList);
247cdf0e10cSrcweir 
248cdf0e10cSrcweir 	/// process attribute values
249cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
250cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
251cdf0e10cSrcweir 
252cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
253cdf0e10cSrcweir 	virtual void PrepareField(
254cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
255cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
256cdf0e10cSrcweir };
257cdf0e10cSrcweir 
258cdf0e10cSrcweir 
259cdf0e10cSrcweir /** inherit sender field because of fixed attribute in ProcessAttributes */
260cdf0e10cSrcweir class XMLAuthorFieldImportContext : public XMLSenderFieldImportContext
261cdf0e10cSrcweir {
262cdf0e10cSrcweir 
263cdf0e10cSrcweir 	sal_Bool bAuthorFullName;
264cdf0e10cSrcweir 	const ::rtl::OUString sServiceAuthor;
265cdf0e10cSrcweir 	const ::rtl::OUString sPropertyAuthorFullName;
266cdf0e10cSrcweir 	const ::rtl::OUString sPropertyFixed;
267cdf0e10cSrcweir 	const ::rtl::OUString sPropertyContent;
268cdf0e10cSrcweir 
269cdf0e10cSrcweir public:
270cdf0e10cSrcweir 
271cdf0e10cSrcweir 	TYPEINFO();
272cdf0e10cSrcweir 
273cdf0e10cSrcweir 	XMLAuthorFieldImportContext(
274cdf0e10cSrcweir 		SvXMLImport& rImport,					/// XML Import
275cdf0e10cSrcweir 		XMLTextImportHelper& rHlp,				/// Text import helper
276cdf0e10cSrcweir 		sal_uInt16 nPrfx,						/// namespace prefix
277cdf0e10cSrcweir 		const ::rtl::OUString& sLocalName,		/// element name w/o prefix
278cdf0e10cSrcweir 		sal_uInt16 nToken);						/// element token
279cdf0e10cSrcweir 
280cdf0e10cSrcweir protected:
281cdf0e10cSrcweir 
282cdf0e10cSrcweir 	/// start element
283cdf0e10cSrcweir 	virtual void StartElement(
284cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
285cdf0e10cSrcweir 		::com::sun::star::xml::sax::XAttributeList> & xAttrList);
286cdf0e10cSrcweir 
287cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
288cdf0e10cSrcweir 	virtual void PrepareField(
289cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
290cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
291cdf0e10cSrcweir };
292cdf0e10cSrcweir 
293cdf0e10cSrcweir 
294cdf0e10cSrcweir 
295cdf0e10cSrcweir class XMLPlaceholderFieldImportContext : public XMLTextFieldImportContext
296cdf0e10cSrcweir {
297cdf0e10cSrcweir 
298cdf0e10cSrcweir 	const ::rtl::OUString sEmpty;		/// empty string
299cdf0e10cSrcweir 	const ::rtl::OUString sServiceJumpEdit;
300cdf0e10cSrcweir 	const ::rtl::OUString sPropertyPlaceholderType;
301cdf0e10cSrcweir 	const ::rtl::OUString sPropertyPlaceholder;
302cdf0e10cSrcweir 	const ::rtl::OUString sPropertyHint;
303cdf0e10cSrcweir 
304cdf0e10cSrcweir 	::rtl::OUString sDescription;
305cdf0e10cSrcweir 
306cdf0e10cSrcweir 	sal_Int16 nPlaceholderType;
307cdf0e10cSrcweir 
308cdf0e10cSrcweir public:
309cdf0e10cSrcweir 
310cdf0e10cSrcweir 	TYPEINFO();
311cdf0e10cSrcweir 
312cdf0e10cSrcweir 	XMLPlaceholderFieldImportContext(
313cdf0e10cSrcweir 		SvXMLImport& rImport,					/// XML Import
314cdf0e10cSrcweir 		XMLTextImportHelper& rHlp,				/// Text import helper
315cdf0e10cSrcweir 		sal_uInt16 nPrfx,						/// namespace prefix
316cdf0e10cSrcweir 		const ::rtl::OUString& sLocalName);		/// element name w/o prefix
317cdf0e10cSrcweir 
318cdf0e10cSrcweir protected:
319cdf0e10cSrcweir 
320cdf0e10cSrcweir 	/// process attribute values
321cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
322cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
323cdf0e10cSrcweir 
324cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
325cdf0e10cSrcweir 	virtual void PrepareField(
326cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
327cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
328cdf0e10cSrcweir };
329cdf0e10cSrcweir 
330cdf0e10cSrcweir class XMLTimeFieldImportContext : public XMLTextFieldImportContext
331cdf0e10cSrcweir {
332cdf0e10cSrcweir 
333cdf0e10cSrcweir protected:
334cdf0e10cSrcweir 	const ::rtl::OUString sPropertyNumberFormat;
335cdf0e10cSrcweir 	const ::rtl::OUString sPropertyFixed;
336cdf0e10cSrcweir 	const ::rtl::OUString sPropertyDateTimeValue;
337cdf0e10cSrcweir 	const ::rtl::OUString sPropertyDateTime;
338cdf0e10cSrcweir 	const ::rtl::OUString sPropertyAdjust;
339cdf0e10cSrcweir 	const ::rtl::OUString sPropertyIsDate;
340cdf0e10cSrcweir     const ::rtl::OUString sPropertyIsFixedLanguage;
341cdf0e10cSrcweir 
342cdf0e10cSrcweir 	double fTimeValue;
343cdf0e10cSrcweir 	::com::sun::star::util::DateTime aDateTimeValue;
344cdf0e10cSrcweir 	sal_Int32 nAdjust;
345cdf0e10cSrcweir 	sal_Int32 nFormatKey;
346cdf0e10cSrcweir 	sal_Bool bTimeOK;
347cdf0e10cSrcweir 	sal_Bool bFormatOK;
348cdf0e10cSrcweir 	sal_Bool bFixed;
349cdf0e10cSrcweir 	sal_Bool bIsDate;			// is this a date?
350cdf0e10cSrcweir 								// (for XMLDateFieldImportContext, really)
351cdf0e10cSrcweir     sal_Bool bIsDefaultLanguage;
352cdf0e10cSrcweir 
353cdf0e10cSrcweir public:
354cdf0e10cSrcweir 
355cdf0e10cSrcweir 	TYPEINFO();
356cdf0e10cSrcweir 
357cdf0e10cSrcweir 	XMLTimeFieldImportContext(
358cdf0e10cSrcweir 		SvXMLImport& rImport,					/// XML Import
359cdf0e10cSrcweir 		XMLTextImportHelper& rHlp,				/// Text import helper
360cdf0e10cSrcweir 		sal_uInt16 nPrfx,						/// namespace prefix
361cdf0e10cSrcweir 		const ::rtl::OUString& sLocalName);		/// element name w/o prefix
362cdf0e10cSrcweir 
363cdf0e10cSrcweir 	/// process attribute values
364cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
365cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
366cdf0e10cSrcweir 
367cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
368cdf0e10cSrcweir 	virtual void PrepareField(
369cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
370cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
371cdf0e10cSrcweir };
372cdf0e10cSrcweir 
373cdf0e10cSrcweir 
374cdf0e10cSrcweir /** import date fields (<text:date>);
375cdf0e10cSrcweir 	inherit from TimeField to reuse implementation */
376cdf0e10cSrcweir class XMLDateFieldImportContext : public XMLTimeFieldImportContext
377cdf0e10cSrcweir {
378cdf0e10cSrcweir 
379cdf0e10cSrcweir public:
380cdf0e10cSrcweir 
381cdf0e10cSrcweir 	TYPEINFO();
382cdf0e10cSrcweir 
383cdf0e10cSrcweir 	XMLDateFieldImportContext(
384cdf0e10cSrcweir 		SvXMLImport& rImport,					/// XML Import
385cdf0e10cSrcweir 		XMLTextImportHelper& rHlp,				/// Text import helper
386cdf0e10cSrcweir 		sal_uInt16 nPrfx,						/// namespace prefix
387cdf0e10cSrcweir 		const ::rtl::OUString& sLocalName);		/// element name w/o prefix
388cdf0e10cSrcweir 
389cdf0e10cSrcweir 	/// process attribute values
390cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
391cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
392cdf0e10cSrcweir };
393cdf0e10cSrcweir 
394cdf0e10cSrcweir 
395cdf0e10cSrcweir /** import page continuation fields (<text:page-continuation-string>) */
396cdf0e10cSrcweir class XMLPageContinuationImportContext : public XMLTextFieldImportContext
397cdf0e10cSrcweir {
398cdf0e10cSrcweir 	const ::rtl::OUString sPropertySubType;
399cdf0e10cSrcweir 	const ::rtl::OUString sPropertyUserText;
400cdf0e10cSrcweir 	const ::rtl::OUString sPropertyNumberingType;
401cdf0e10cSrcweir 
402cdf0e10cSrcweir 	::rtl::OUString sString;			/// continuation string
403cdf0e10cSrcweir 	com::sun::star::text::PageNumberType eSelectPage;	/// previous, current
404cdf0e10cSrcweir 														/// or next page
405cdf0e10cSrcweir 	sal_Bool sStringOK;					/// continuation string encountered?
406cdf0e10cSrcweir 
407cdf0e10cSrcweir public:
408cdf0e10cSrcweir 
409cdf0e10cSrcweir 	TYPEINFO();
410cdf0e10cSrcweir 
411cdf0e10cSrcweir 	XMLPageContinuationImportContext(
412cdf0e10cSrcweir 		SvXMLImport& rImport,					/// XML Import
413cdf0e10cSrcweir 		XMLTextImportHelper& rHlp,				/// Text import helper
414cdf0e10cSrcweir 		sal_uInt16 nPrfx,						/// namespace prefix
415cdf0e10cSrcweir 		const ::rtl::OUString& sLocalName);		/// element name w/o prefix
416cdf0e10cSrcweir 
417cdf0e10cSrcweir 
418cdf0e10cSrcweir 	/// process attribute values
419cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
420cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
421cdf0e10cSrcweir 
422cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
423cdf0e10cSrcweir 	virtual void PrepareField(
424cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
425cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
426cdf0e10cSrcweir };
427cdf0e10cSrcweir 
428cdf0e10cSrcweir 
429cdf0e10cSrcweir /** import page number fields (<text:page-number>) */
430cdf0e10cSrcweir class XMLPageNumberImportContext : public XMLTextFieldImportContext
431cdf0e10cSrcweir {
432cdf0e10cSrcweir 	const ::rtl::OUString sPropertySubType;
433cdf0e10cSrcweir 	const ::rtl::OUString sPropertyNumberingType;
434cdf0e10cSrcweir 	const ::rtl::OUString sPropertyOffset;
435cdf0e10cSrcweir 
436cdf0e10cSrcweir 	::rtl::OUString sNumberFormat;
437cdf0e10cSrcweir 	::rtl::OUString sNumberSync;
438cdf0e10cSrcweir 	sal_Int16 nPageAdjust;
439cdf0e10cSrcweir 	com::sun::star::text::PageNumberType eSelectPage;	/// previous, current
440cdf0e10cSrcweir 														/// or next page
441cdf0e10cSrcweir 	sal_Bool sNumberFormatOK;
442cdf0e10cSrcweir 
443cdf0e10cSrcweir public:
444cdf0e10cSrcweir 
445cdf0e10cSrcweir 	TYPEINFO();
446cdf0e10cSrcweir 
447cdf0e10cSrcweir 	XMLPageNumberImportContext(
448cdf0e10cSrcweir 		SvXMLImport& rImport,					/// XML Import
449cdf0e10cSrcweir 		XMLTextImportHelper& rHlp,				/// Text import helper
450cdf0e10cSrcweir 		sal_uInt16 nPrfx,						/// namespace prefix
451cdf0e10cSrcweir 		const ::rtl::OUString& sLocalName);		/// element name w/o prefix
452cdf0e10cSrcweir 
453cdf0e10cSrcweir 
454cdf0e10cSrcweir 	/// process attribute values
455cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
456cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
457cdf0e10cSrcweir 
458cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
459cdf0e10cSrcweir 	virtual void PrepareField(
460cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
461cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
462cdf0e10cSrcweir };
463cdf0e10cSrcweir 
464cdf0e10cSrcweir 
465cdf0e10cSrcweir /** superclass for database fields: handle database and table names */
466cdf0e10cSrcweir class XMLDatabaseFieldImportContext : public XMLTextFieldImportContext
467cdf0e10cSrcweir {
468cdf0e10cSrcweir 	const ::rtl::OUString sPropertyDataBaseName;
469cdf0e10cSrcweir 	const ::rtl::OUString sPropertyDataBaseURL;
470cdf0e10cSrcweir 	const ::rtl::OUString sPropertyTableName;
471cdf0e10cSrcweir     const ::rtl::OUString sPropertyDataCommandType;
472cdf0e10cSrcweir     const ::rtl::OUString sPropertyIsVisible;
473cdf0e10cSrcweir 
474cdf0e10cSrcweir 	::rtl::OUString sDatabaseName;
475cdf0e10cSrcweir 	::rtl::OUString sDatabaseURL;
476cdf0e10cSrcweir 	::rtl::OUString sTableName;
477cdf0e10cSrcweir 
478cdf0e10cSrcweir     sal_Int32 nCommandType;
479cdf0e10cSrcweir     sal_Bool bCommandTypeOK;
480cdf0e10cSrcweir 
481cdf0e10cSrcweir     sal_Bool bDisplay;
482cdf0e10cSrcweir     bool bDisplayOK;
483cdf0e10cSrcweir     bool bUseDisplay;
484cdf0e10cSrcweir 
485cdf0e10cSrcweir protected:
486cdf0e10cSrcweir 	sal_Bool bDatabaseOK;
487cdf0e10cSrcweir 	sal_Bool bDatabaseNameOK;
488cdf0e10cSrcweir 	sal_Bool bDatabaseURLOK;
489cdf0e10cSrcweir 	sal_Bool bTableOK;
490cdf0e10cSrcweir 
491cdf0e10cSrcweir 	/// protected constructor: only for subclasses
492cdf0e10cSrcweir 	XMLDatabaseFieldImportContext(SvXMLImport& rImport,
493cdf0e10cSrcweir 								  XMLTextImportHelper& rHlp,
494cdf0e10cSrcweir 								  const sal_Char* pServiceName,
495cdf0e10cSrcweir 								  sal_uInt16 nPrfx,
496cdf0e10cSrcweir 								  const ::rtl::OUString& sLocalName,
497cdf0e10cSrcweir                                   bool bUseDisplay );
498cdf0e10cSrcweir 
499cdf0e10cSrcweir public:
500cdf0e10cSrcweir 
501cdf0e10cSrcweir TYPEINFO();
502cdf0e10cSrcweir 
503cdf0e10cSrcweir 	/// process attribute values
504cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
505cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
506cdf0e10cSrcweir 
507cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
508cdf0e10cSrcweir 	virtual void PrepareField(
509cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
510cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
511cdf0e10cSrcweir 
512cdf0e10cSrcweir     /// handle database-location children
513cdf0e10cSrcweir     virtual SvXMLImportContext *CreateChildContext(
514cdf0e10cSrcweir 		sal_uInt16 nPrefix,
515cdf0e10cSrcweir 		const ::rtl::OUString& rLocalName,
516cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
517cdf0e10cSrcweir 		::com::sun::star::xml::sax::XAttributeList> & xAttrList );
518cdf0e10cSrcweir };
519cdf0e10cSrcweir 
520cdf0e10cSrcweir /** import database name fields (<text:database-name>) */
521cdf0e10cSrcweir class XMLDatabaseNameImportContext : public XMLDatabaseFieldImportContext
522cdf0e10cSrcweir {
523cdf0e10cSrcweir public:
524cdf0e10cSrcweir 
525cdf0e10cSrcweir 	TYPEINFO();
526cdf0e10cSrcweir 
527cdf0e10cSrcweir 	XMLDatabaseNameImportContext(SvXMLImport& rImport,
528cdf0e10cSrcweir 								 XMLTextImportHelper& rHlp,
529cdf0e10cSrcweir 								 sal_uInt16 nPrfx,
530cdf0e10cSrcweir 								 const ::rtl::OUString& sLocalName);
531cdf0e10cSrcweir 
532cdf0e10cSrcweir 	/// process attribute values
533cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
534cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
535cdf0e10cSrcweir };
536cdf0e10cSrcweir 
537cdf0e10cSrcweir 
538cdf0e10cSrcweir /** import database next fields (<text:database-next>) */
539cdf0e10cSrcweir class XMLDatabaseNextImportContext : public XMLDatabaseFieldImportContext
540cdf0e10cSrcweir {
541cdf0e10cSrcweir 	const ::rtl::OUString sPropertyCondition;
542cdf0e10cSrcweir 	const ::rtl::OUString sTrue;
543cdf0e10cSrcweir 	::rtl::OUString sCondition;
544cdf0e10cSrcweir 	sal_Bool bConditionOK;
545cdf0e10cSrcweir 
546cdf0e10cSrcweir protected:
547cdf0e10cSrcweir 
548cdf0e10cSrcweir 	// for use in child classes
549cdf0e10cSrcweir 	XMLDatabaseNextImportContext(SvXMLImport& rImport,
550cdf0e10cSrcweir 								 XMLTextImportHelper& rHlp,
551cdf0e10cSrcweir 								 const sal_Char* pServiceName,
552cdf0e10cSrcweir 								 sal_uInt16 nPrfx,
553cdf0e10cSrcweir 								 const ::rtl::OUString& sLocalName);
554cdf0e10cSrcweir 
555cdf0e10cSrcweir public:
556cdf0e10cSrcweir 
557cdf0e10cSrcweir 	TYPEINFO();
558cdf0e10cSrcweir 
559cdf0e10cSrcweir 	XMLDatabaseNextImportContext(SvXMLImport& rImport,
560cdf0e10cSrcweir 								 XMLTextImportHelper& rHlp,
561cdf0e10cSrcweir 								 sal_uInt16 nPrfx,
562cdf0e10cSrcweir 								 const ::rtl::OUString& sLocalName);
563cdf0e10cSrcweir 
564cdf0e10cSrcweir 	/// process attribute values
565cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
566cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
567cdf0e10cSrcweir 
568cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
569cdf0e10cSrcweir 	virtual void PrepareField(
570cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
571cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
572cdf0e10cSrcweir };
573cdf0e10cSrcweir 
574cdf0e10cSrcweir 
575cdf0e10cSrcweir 
576cdf0e10cSrcweir /** import database select fields (<text:database-select>) */
577cdf0e10cSrcweir class XMLDatabaseSelectImportContext : public XMLDatabaseNextImportContext
578cdf0e10cSrcweir {
579cdf0e10cSrcweir 	const ::rtl::OUString sPropertySetNumber;
580cdf0e10cSrcweir 	sal_Int32 nNumber;
581cdf0e10cSrcweir 	sal_Bool bNumberOK;
582cdf0e10cSrcweir 
583cdf0e10cSrcweir public:
584cdf0e10cSrcweir 
585cdf0e10cSrcweir 	TYPEINFO();
586cdf0e10cSrcweir 
587cdf0e10cSrcweir 	XMLDatabaseSelectImportContext(SvXMLImport& rImport,
588cdf0e10cSrcweir 								   XMLTextImportHelper& rHlp,
589cdf0e10cSrcweir 								   sal_uInt16 nPrfx,
590cdf0e10cSrcweir 								   const ::rtl::OUString& sLocalName);
591cdf0e10cSrcweir 
592cdf0e10cSrcweir 	/// process attribute values
593cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
594cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
595cdf0e10cSrcweir 
596cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
597cdf0e10cSrcweir 	virtual void PrepareField(
598cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
599cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
600cdf0e10cSrcweir };
601cdf0e10cSrcweir 
602cdf0e10cSrcweir 
603cdf0e10cSrcweir /** import database display number fields (<text:database-row-number>) */
604cdf0e10cSrcweir class XMLDatabaseNumberImportContext : public XMLDatabaseFieldImportContext
605cdf0e10cSrcweir {
606cdf0e10cSrcweir 	const ::rtl::OUString sPropertyNumberingType;
607cdf0e10cSrcweir 	const ::rtl::OUString sPropertySetNumber;
608cdf0e10cSrcweir 	::rtl::OUString sNumberFormat;
609cdf0e10cSrcweir 	::rtl::OUString sNumberSync;
610cdf0e10cSrcweir 	sal_Int32 nValue;
611cdf0e10cSrcweir 	sal_Bool bValueOK;
612cdf0e10cSrcweir 
613cdf0e10cSrcweir public:
614cdf0e10cSrcweir 
615cdf0e10cSrcweir 	TYPEINFO();
616cdf0e10cSrcweir 
617cdf0e10cSrcweir 	XMLDatabaseNumberImportContext(SvXMLImport& rImport,
618cdf0e10cSrcweir 								   XMLTextImportHelper& rHlp,
619cdf0e10cSrcweir 								   sal_uInt16 nPrfx,
620cdf0e10cSrcweir 								   const ::rtl::OUString& sLocalName);
621cdf0e10cSrcweir 
622cdf0e10cSrcweir 	/// process attribute values
623cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
624cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
625cdf0e10cSrcweir 
626cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
627cdf0e10cSrcweir 	virtual void PrepareField(
628cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
629cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
630cdf0e10cSrcweir };
631cdf0e10cSrcweir 
632cdf0e10cSrcweir 
633cdf0e10cSrcweir /** import docinfo fields with only fixed atribute */
634cdf0e10cSrcweir class XMLSimpleDocInfoImportContext : public XMLTextFieldImportContext
635cdf0e10cSrcweir {
636cdf0e10cSrcweir 	const ::rtl::OUString sPropertyFixed;
637cdf0e10cSrcweir 	const ::rtl::OUString sPropertyContent;
638cdf0e10cSrcweir 	const ::rtl::OUString sPropertyAuthor;
639cdf0e10cSrcweir 	const ::rtl::OUString sPropertyCurrentPresentation;
640cdf0e10cSrcweir 
641cdf0e10cSrcweir protected:
642cdf0e10cSrcweir 	sal_Bool bFixed;
643cdf0e10cSrcweir 	sal_Bool bHasAuthor;
644cdf0e10cSrcweir 	sal_Bool bHasContent;
645cdf0e10cSrcweir 
646cdf0e10cSrcweir public:
647cdf0e10cSrcweir 
648cdf0e10cSrcweir 	TYPEINFO();
649cdf0e10cSrcweir 
650cdf0e10cSrcweir 	XMLSimpleDocInfoImportContext(SvXMLImport& rImport,
651cdf0e10cSrcweir 								  XMLTextImportHelper& rHlp,
652cdf0e10cSrcweir 								  sal_uInt16 nPrfx,
653cdf0e10cSrcweir 								  const ::rtl::OUString& sLocalName,
654cdf0e10cSrcweir 								  sal_uInt16 nToken,
655cdf0e10cSrcweir 								  sal_Bool bContent,
656cdf0e10cSrcweir 								  sal_Bool bAuthor);
657cdf0e10cSrcweir 
658cdf0e10cSrcweir protected:
659cdf0e10cSrcweir 
660cdf0e10cSrcweir 	/// process attribute values
661cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
662cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
663cdf0e10cSrcweir 
664cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
665cdf0e10cSrcweir 	virtual void PrepareField(
666cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
667cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
668cdf0e10cSrcweir 
669cdf0e10cSrcweir 	static const sal_Char* MapTokenToServiceName(sal_uInt16 nToken);
670cdf0e10cSrcweir };
671cdf0e10cSrcweir 
672cdf0e10cSrcweir 
673cdf0e10cSrcweir 
674cdf0e10cSrcweir /** import docinfo fields with date or time attributes and numberformats */
675cdf0e10cSrcweir class XMLDateTimeDocInfoImportContext : public XMLSimpleDocInfoImportContext
676cdf0e10cSrcweir {
677cdf0e10cSrcweir 	const ::rtl::OUString sPropertyNumberFormat;
678cdf0e10cSrcweir 	const ::rtl::OUString sPropertyIsDate;
679cdf0e10cSrcweir     const ::rtl::OUString sPropertyIsFixedLanguage;
680cdf0e10cSrcweir 
681cdf0e10cSrcweir 	sal_Int32 nFormat;
682cdf0e10cSrcweir 	sal_Bool bFormatOK;
683cdf0e10cSrcweir 	sal_Bool bIsDate;
684cdf0e10cSrcweir 	sal_Bool bHasDateTime;
685cdf0e10cSrcweir     sal_Bool bIsDefaultLanguage;
686cdf0e10cSrcweir 
687cdf0e10cSrcweir public:
688cdf0e10cSrcweir 
689cdf0e10cSrcweir 	TYPEINFO();
690cdf0e10cSrcweir 
691cdf0e10cSrcweir 	XMLDateTimeDocInfoImportContext(SvXMLImport& rImport,
692cdf0e10cSrcweir 									XMLTextImportHelper& rHlp,
693cdf0e10cSrcweir 									sal_uInt16 nPrfx,
694cdf0e10cSrcweir 									const ::rtl::OUString& sLocalName,
695cdf0e10cSrcweir 									sal_uInt16 nToken);
696cdf0e10cSrcweir 
697cdf0e10cSrcweir protected:
698cdf0e10cSrcweir 
699cdf0e10cSrcweir 	/// process attribute values
700cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
701cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
702cdf0e10cSrcweir 
703cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
704cdf0e10cSrcweir 	virtual void PrepareField(
705cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
706cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
707cdf0e10cSrcweir };
708cdf0e10cSrcweir 
709cdf0e10cSrcweir 
710cdf0e10cSrcweir 
711cdf0e10cSrcweir /** import revision field (<text:editing-cycles>) */
712cdf0e10cSrcweir class XMLRevisionDocInfoImportContext : public XMLSimpleDocInfoImportContext
713cdf0e10cSrcweir {
714cdf0e10cSrcweir 	const ::rtl::OUString sPropertyRevision;
715cdf0e10cSrcweir 
716cdf0e10cSrcweir public:
717cdf0e10cSrcweir 
718cdf0e10cSrcweir 	TYPEINFO();
719cdf0e10cSrcweir 
720cdf0e10cSrcweir 	XMLRevisionDocInfoImportContext(SvXMLImport& rImport,
721cdf0e10cSrcweir 									XMLTextImportHelper& rHlp,
722cdf0e10cSrcweir 									sal_uInt16 nPrfx,
723cdf0e10cSrcweir 									const ::rtl::OUString& sLocalName,
724cdf0e10cSrcweir 									sal_uInt16 nToken);
725cdf0e10cSrcweir 
726cdf0e10cSrcweir protected:
727cdf0e10cSrcweir 
728cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
729cdf0e10cSrcweir 	virtual void PrepareField(
730cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
731cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
732cdf0e10cSrcweir };
733cdf0e10cSrcweir 
734cdf0e10cSrcweir 
735cdf0e10cSrcweir 
736cdf0e10cSrcweir /** import user docinfo field (<text:user-defined>) */
737cdf0e10cSrcweir class XMLUserDocInfoImportContext : public XMLSimpleDocInfoImportContext
738cdf0e10cSrcweir {
739cdf0e10cSrcweir 	rtl::OUString aName;
740cdf0e10cSrcweir 	const ::rtl::OUString sPropertyName;
741cdf0e10cSrcweir 	const ::rtl::OUString sPropertyNumberFormat;
742cdf0e10cSrcweir     const ::rtl::OUString sPropertyIsFixedLanguage;
743cdf0e10cSrcweir 	sal_Int32   nFormat;
744cdf0e10cSrcweir 	sal_Bool    bFormatOK;
745cdf0e10cSrcweir 	sal_Bool    bIsDefaultLanguage;
746cdf0e10cSrcweir 
747cdf0e10cSrcweir public:
748cdf0e10cSrcweir 
749cdf0e10cSrcweir 	TYPEINFO();
750cdf0e10cSrcweir 
751cdf0e10cSrcweir 	XMLUserDocInfoImportContext(SvXMLImport& rImport,
752cdf0e10cSrcweir 								XMLTextImportHelper& rHlp,
753cdf0e10cSrcweir 								sal_uInt16 nPrfx,
754cdf0e10cSrcweir 								const ::rtl::OUString& sLocalName,
755cdf0e10cSrcweir 								sal_uInt16 nToken);
756cdf0e10cSrcweir 
757cdf0e10cSrcweir protected:
758cdf0e10cSrcweir 
759cdf0e10cSrcweir 	/// process attribute values
760cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
761cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
762cdf0e10cSrcweir 	virtual void PrepareField(
763cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
764cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
765cdf0e10cSrcweir };
766cdf0e10cSrcweir 
767cdf0e10cSrcweir 
768cdf0e10cSrcweir 
769cdf0e10cSrcweir /** import hidden paragraph fields (<text:hidden-paragraph>) */
770cdf0e10cSrcweir class XMLHiddenParagraphImportContext : public XMLTextFieldImportContext
771cdf0e10cSrcweir {
772cdf0e10cSrcweir 	const ::rtl::OUString sPropertyCondition;
773cdf0e10cSrcweir 	const ::rtl::OUString sPropertyIsHidden;
774cdf0e10cSrcweir 
775cdf0e10cSrcweir 	::rtl::OUString sCondition;
776cdf0e10cSrcweir 	sal_Bool bIsHidden;
777cdf0e10cSrcweir 
778cdf0e10cSrcweir public:
779cdf0e10cSrcweir 
780cdf0e10cSrcweir 	TYPEINFO();
781cdf0e10cSrcweir 
782cdf0e10cSrcweir 	XMLHiddenParagraphImportContext(SvXMLImport& rImport,
783cdf0e10cSrcweir 									XMLTextImportHelper& rHlp,
784cdf0e10cSrcweir 									sal_uInt16 nPrfx,
785cdf0e10cSrcweir 									const ::rtl::OUString& sLocalName);
786cdf0e10cSrcweir 
787cdf0e10cSrcweir protected:
788cdf0e10cSrcweir 
789cdf0e10cSrcweir 	/// process attribute values
790cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
791cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
792cdf0e10cSrcweir 
793cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
794cdf0e10cSrcweir 	virtual void PrepareField(
795cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
796cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
797cdf0e10cSrcweir };
798cdf0e10cSrcweir 
799cdf0e10cSrcweir 
800cdf0e10cSrcweir 
801cdf0e10cSrcweir /** import conditional text fields (<text:conditional-text>) */
802cdf0e10cSrcweir class XMLConditionalTextImportContext : public XMLTextFieldImportContext
803cdf0e10cSrcweir {
804cdf0e10cSrcweir 	const ::rtl::OUString sPropertyCondition;
805cdf0e10cSrcweir 	const ::rtl::OUString sPropertyTrueContent;
806cdf0e10cSrcweir 	const ::rtl::OUString sPropertyFalseContent;
807cdf0e10cSrcweir 	const ::rtl::OUString sPropertyIsConditionTrue;
808cdf0e10cSrcweir     const ::rtl::OUString sPropertyCurrentPresentation;
809cdf0e10cSrcweir 
810cdf0e10cSrcweir 	::rtl::OUString sCondition;
811cdf0e10cSrcweir 	::rtl::OUString sTrueContent;
812cdf0e10cSrcweir 	::rtl::OUString sFalseContent;
813cdf0e10cSrcweir 
814cdf0e10cSrcweir 	sal_Bool bConditionOK;
815cdf0e10cSrcweir 	sal_Bool bTrueOK;
816cdf0e10cSrcweir 	sal_Bool bFalseOK;
817cdf0e10cSrcweir 	sal_Bool bCurrentValue;
818cdf0e10cSrcweir 
819cdf0e10cSrcweir public:
820cdf0e10cSrcweir 
821cdf0e10cSrcweir 	TYPEINFO();
822cdf0e10cSrcweir 
823cdf0e10cSrcweir 	XMLConditionalTextImportContext(SvXMLImport& rImport,
824cdf0e10cSrcweir 									XMLTextImportHelper& rHlp,
825cdf0e10cSrcweir 									sal_uInt16 nPrfx,
826cdf0e10cSrcweir 									const ::rtl::OUString& sLocalName);
827cdf0e10cSrcweir 
828cdf0e10cSrcweir protected:
829cdf0e10cSrcweir 
830cdf0e10cSrcweir 	/// process attribute values
831cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
832cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
833cdf0e10cSrcweir 
834cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
835cdf0e10cSrcweir 	virtual void PrepareField(
836cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
837cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
838cdf0e10cSrcweir };
839cdf0e10cSrcweir 
840cdf0e10cSrcweir 
841cdf0e10cSrcweir 
842cdf0e10cSrcweir /** import conditional text fields (<text:hidden-text>) */
843cdf0e10cSrcweir class XMLHiddenTextImportContext : public XMLTextFieldImportContext
844cdf0e10cSrcweir {
845cdf0e10cSrcweir 	const ::rtl::OUString sPropertyCondition;
846cdf0e10cSrcweir 	const ::rtl::OUString sPropertyContent;
847cdf0e10cSrcweir 	const ::rtl::OUString sPropertyIsHidden;
848cdf0e10cSrcweir 
849cdf0e10cSrcweir 	::rtl::OUString sCondition;
850cdf0e10cSrcweir 	::rtl::OUString sString;
851cdf0e10cSrcweir 
852cdf0e10cSrcweir 	sal_Bool bConditionOK;
853cdf0e10cSrcweir 	sal_Bool bStringOK;
854cdf0e10cSrcweir 	sal_Bool bIsHidden;
855cdf0e10cSrcweir 
856cdf0e10cSrcweir public:
857cdf0e10cSrcweir 
858cdf0e10cSrcweir 	TYPEINFO();
859cdf0e10cSrcweir 
860cdf0e10cSrcweir 	XMLHiddenTextImportContext(SvXMLImport& rImport,
861cdf0e10cSrcweir 							   XMLTextImportHelper& rHlp,
862cdf0e10cSrcweir 							   sal_uInt16 nPrfx,
863cdf0e10cSrcweir 							   const ::rtl::OUString& sLocalName);
864cdf0e10cSrcweir 
865cdf0e10cSrcweir protected:
866cdf0e10cSrcweir 
867cdf0e10cSrcweir 	/// process attribute values
868cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
869cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
870cdf0e10cSrcweir 
871cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
872cdf0e10cSrcweir 	virtual void PrepareField(
873cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
874cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
875cdf0e10cSrcweir };
876cdf0e10cSrcweir 
877cdf0e10cSrcweir 
878cdf0e10cSrcweir 
879cdf0e10cSrcweir /** import file name fields (<text:file-name>) */
880cdf0e10cSrcweir class XMLFileNameImportContext : public XMLTextFieldImportContext
881cdf0e10cSrcweir {
882cdf0e10cSrcweir 	const ::rtl::OUString sPropertyFixed;
883cdf0e10cSrcweir 	const ::rtl::OUString sPropertyFileFormat;
884cdf0e10cSrcweir 	const ::rtl::OUString sPropertyCurrentPresentation;
885cdf0e10cSrcweir 
886cdf0e10cSrcweir 	sal_Int16 nFormat;
887cdf0e10cSrcweir 	sal_Bool bFixed;
888cdf0e10cSrcweir 
889cdf0e10cSrcweir public:
890cdf0e10cSrcweir 
891cdf0e10cSrcweir 	TYPEINFO();
892cdf0e10cSrcweir 
893cdf0e10cSrcweir 	XMLFileNameImportContext(SvXMLImport& rImport,
894cdf0e10cSrcweir 							 XMLTextImportHelper& rHlp,
895cdf0e10cSrcweir 							 sal_uInt16 nPrfx,
896cdf0e10cSrcweir 							 const ::rtl::OUString& sLocalName);
897cdf0e10cSrcweir 
898cdf0e10cSrcweir protected:
899cdf0e10cSrcweir 
900cdf0e10cSrcweir 	/// process attribute values
901cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
902cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
903cdf0e10cSrcweir 
904cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
905cdf0e10cSrcweir 	virtual void PrepareField(
906cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
907cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
908cdf0e10cSrcweir };
909cdf0e10cSrcweir 
910cdf0e10cSrcweir 
911cdf0e10cSrcweir 
912cdf0e10cSrcweir /** import document template name fields (<text:template-name>) */
913cdf0e10cSrcweir class XMLTemplateNameImportContext : public XMLTextFieldImportContext
914cdf0e10cSrcweir {
915cdf0e10cSrcweir 	const ::rtl::OUString sPropertyFileFormat;
916cdf0e10cSrcweir 
917cdf0e10cSrcweir 	sal_Int16 nFormat;
918cdf0e10cSrcweir 
919cdf0e10cSrcweir public:
920cdf0e10cSrcweir 
921cdf0e10cSrcweir 	TYPEINFO();
922cdf0e10cSrcweir 
923cdf0e10cSrcweir 	XMLTemplateNameImportContext(SvXMLImport& rImport,
924cdf0e10cSrcweir 								 XMLTextImportHelper& rHlp,
925cdf0e10cSrcweir 								 sal_uInt16 nPrfx,
926cdf0e10cSrcweir 								 const ::rtl::OUString& sLocalName);
927cdf0e10cSrcweir 
928cdf0e10cSrcweir protected:
929cdf0e10cSrcweir 
930cdf0e10cSrcweir 	/// process attribute values
931cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
932cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
933cdf0e10cSrcweir 
934cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
935cdf0e10cSrcweir 	virtual void PrepareField(
936cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
937cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
938cdf0e10cSrcweir };
939cdf0e10cSrcweir 
940cdf0e10cSrcweir 
941cdf0e10cSrcweir /** import chapter fields (<text:chapter>) */
942cdf0e10cSrcweir class XMLChapterImportContext : public XMLTextFieldImportContext
943cdf0e10cSrcweir {
944cdf0e10cSrcweir 	const ::rtl::OUString sPropertyChapterFormat;
945cdf0e10cSrcweir 	const ::rtl::OUString sPropertyLevel;
946cdf0e10cSrcweir 
947cdf0e10cSrcweir 	sal_Int16 nFormat;
948cdf0e10cSrcweir 	sal_Int8 nLevel;
949cdf0e10cSrcweir 
950cdf0e10cSrcweir public:
951cdf0e10cSrcweir 
952cdf0e10cSrcweir 	TYPEINFO();
953cdf0e10cSrcweir 
954cdf0e10cSrcweir 	XMLChapterImportContext(SvXMLImport& rImport,
955cdf0e10cSrcweir 							XMLTextImportHelper& rHlp,
956cdf0e10cSrcweir 							sal_uInt16 nPrfx,
957cdf0e10cSrcweir 							const ::rtl::OUString& sLocalName);
958cdf0e10cSrcweir 
959cdf0e10cSrcweir protected:
960cdf0e10cSrcweir 
961cdf0e10cSrcweir 	/// process attribute values
962cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
963cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
964cdf0e10cSrcweir 
965cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
966cdf0e10cSrcweir 	virtual void PrepareField(
967cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
968cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
969cdf0e10cSrcweir };
970cdf0e10cSrcweir 
971cdf0e10cSrcweir 
972cdf0e10cSrcweir 
973cdf0e10cSrcweir /** import count fields (<text:[XXX]-count>) */
974cdf0e10cSrcweir class XMLCountFieldImportContext : public XMLTextFieldImportContext
975cdf0e10cSrcweir {
976cdf0e10cSrcweir 	const ::rtl::OUString sPropertyNumberingType;
977cdf0e10cSrcweir 
978cdf0e10cSrcweir 	::rtl::OUString sNumberFormat;
979cdf0e10cSrcweir 	::rtl::OUString sLetterSync;
980cdf0e10cSrcweir 
981cdf0e10cSrcweir 	sal_Bool bNumberFormatOK;
982cdf0e10cSrcweir 
983cdf0e10cSrcweir public:
984cdf0e10cSrcweir 
985cdf0e10cSrcweir 	TYPEINFO();
986cdf0e10cSrcweir 
987cdf0e10cSrcweir 	XMLCountFieldImportContext(SvXMLImport& rImport,
988cdf0e10cSrcweir 							   XMLTextImportHelper& rHlp,
989cdf0e10cSrcweir 							   sal_uInt16 nPrfx,
990cdf0e10cSrcweir 							   const ::rtl::OUString& sLocalName,
991cdf0e10cSrcweir 							   sal_uInt16 nToken);
992cdf0e10cSrcweir 
993cdf0e10cSrcweir protected:
994cdf0e10cSrcweir 
995cdf0e10cSrcweir 	/// process attribute values
996cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
997cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
998cdf0e10cSrcweir 
999cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
1000cdf0e10cSrcweir 	virtual void PrepareField(
1001cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
1002cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
1003cdf0e10cSrcweir 
1004cdf0e10cSrcweir 	static const sal_Char* MapTokenToServiceName(sal_uInt16 nToken);
1005cdf0e10cSrcweir };
1006cdf0e10cSrcweir 
1007cdf0e10cSrcweir 
1008cdf0e10cSrcweir /** import page variable fields (<text:get-page-variable>) */
1009cdf0e10cSrcweir class XMLPageVarGetFieldImportContext : public XMLTextFieldImportContext
1010cdf0e10cSrcweir {
1011cdf0e10cSrcweir 	const ::rtl::OUString sPropertyNumberingType;
1012cdf0e10cSrcweir 
1013cdf0e10cSrcweir 	::rtl::OUString sNumberFormat;
1014cdf0e10cSrcweir 	::rtl::OUString sLetterSync;
1015cdf0e10cSrcweir 
1016cdf0e10cSrcweir 	sal_Bool bNumberFormatOK;
1017cdf0e10cSrcweir 
1018cdf0e10cSrcweir public:
1019cdf0e10cSrcweir 
1020cdf0e10cSrcweir 	TYPEINFO();
1021cdf0e10cSrcweir 
1022cdf0e10cSrcweir 	XMLPageVarGetFieldImportContext(SvXMLImport& rImport,
1023cdf0e10cSrcweir 									XMLTextImportHelper& rHlp,
1024cdf0e10cSrcweir 									sal_uInt16 nPrfx,
1025cdf0e10cSrcweir 									const ::rtl::OUString& sLocalName);
1026cdf0e10cSrcweir 
1027cdf0e10cSrcweir protected:
1028cdf0e10cSrcweir 
1029cdf0e10cSrcweir 	/// process attribute values
1030cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
1031cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
1032cdf0e10cSrcweir 
1033cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
1034cdf0e10cSrcweir 	virtual void PrepareField(
1035cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
1036cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
1037cdf0e10cSrcweir };
1038cdf0e10cSrcweir 
1039cdf0e10cSrcweir 
1040cdf0e10cSrcweir /** import page variable fields (<text:get-page-variable>) */
1041cdf0e10cSrcweir class XMLPageVarSetFieldImportContext : public XMLTextFieldImportContext
1042cdf0e10cSrcweir {
1043cdf0e10cSrcweir 	const ::rtl::OUString sPropertyOn;
1044cdf0e10cSrcweir 	const ::rtl::OUString sPropertyOffset;
1045cdf0e10cSrcweir 
1046cdf0e10cSrcweir 	sal_Int16 nAdjust;
1047cdf0e10cSrcweir 	sal_Bool bActive;
1048cdf0e10cSrcweir 
1049cdf0e10cSrcweir public:
1050cdf0e10cSrcweir 
1051cdf0e10cSrcweir 	TYPEINFO();
1052cdf0e10cSrcweir 
1053cdf0e10cSrcweir 	XMLPageVarSetFieldImportContext(SvXMLImport& rImport,
1054cdf0e10cSrcweir 									XMLTextImportHelper& rHlp,
1055cdf0e10cSrcweir 									sal_uInt16 nPrfx,
1056cdf0e10cSrcweir 									const ::rtl::OUString& sLocalName);
1057cdf0e10cSrcweir 
1058cdf0e10cSrcweir protected:
1059cdf0e10cSrcweir 
1060cdf0e10cSrcweir 	/// process attribute values
1061cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
1062cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
1063cdf0e10cSrcweir 
1064cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
1065cdf0e10cSrcweir 	virtual void PrepareField(
1066cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
1067cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
1068cdf0e10cSrcweir };
1069cdf0e10cSrcweir 
1070cdf0e10cSrcweir 
1071cdf0e10cSrcweir /** import macro fields (<text:execute-macro>) */
1072cdf0e10cSrcweir class XMLMacroFieldImportContext : public XMLTextFieldImportContext
1073cdf0e10cSrcweir {
1074cdf0e10cSrcweir 
1075cdf0e10cSrcweir 	const ::rtl::OUString sPropertyHint;
1076cdf0e10cSrcweir 	const ::rtl::OUString sPropertyMacroName;
1077cdf0e10cSrcweir 	const ::rtl::OUString sPropertyScriptURL;
1078cdf0e10cSrcweir     const ::rtl::OUString sPropertyLibraryName;
1079cdf0e10cSrcweir 
1080cdf0e10cSrcweir 	::rtl::OUString sDescription;
1081cdf0e10cSrcweir     SvXMLImportContextRef xEventContext;
1082cdf0e10cSrcweir 
1083cdf0e10cSrcweir 	::rtl::OUString sMacro; // macro for old documents (pre 638i)
1084cdf0e10cSrcweir 
1085cdf0e10cSrcweir 	sal_Bool bMacroOK;
1086cdf0e10cSrcweir 	sal_Bool bDescriptionOK;
1087cdf0e10cSrcweir 
1088cdf0e10cSrcweir public:
1089cdf0e10cSrcweir 
1090cdf0e10cSrcweir 	TYPEINFO();
1091cdf0e10cSrcweir 
1092cdf0e10cSrcweir 	XMLMacroFieldImportContext(SvXMLImport& rImport,
1093cdf0e10cSrcweir 							   XMLTextImportHelper& rHlp,
1094cdf0e10cSrcweir 							   sal_uInt16 nPrfx,
1095cdf0e10cSrcweir 							   const ::rtl::OUString& sLocalName);
1096cdf0e10cSrcweir 
1097cdf0e10cSrcweir protected:
1098cdf0e10cSrcweir 
1099cdf0e10cSrcweir 	/// for <office:events> children
1100cdf0e10cSrcweir     virtual SvXMLImportContext *CreateChildContext(
1101cdf0e10cSrcweir 		sal_uInt16 nPrefix,
1102cdf0e10cSrcweir 		const ::rtl::OUString& rLocalName,
1103cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
1104cdf0e10cSrcweir 		::com::sun::star::xml::sax::XAttributeList> & xAttrList );
1105cdf0e10cSrcweir 
1106cdf0e10cSrcweir 	/// process attribute values
1107cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
1108cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
1109cdf0e10cSrcweir 
1110cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
1111cdf0e10cSrcweir 	virtual void PrepareField(
1112cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
1113cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
1114cdf0e10cSrcweir };
1115cdf0e10cSrcweir 
1116cdf0e10cSrcweir 
1117cdf0e10cSrcweir 
1118cdf0e10cSrcweir /** import reference fields (<text:reference-get>) */
1119cdf0e10cSrcweir class XMLReferenceFieldImportContext : public XMLTextFieldImportContext
1120cdf0e10cSrcweir {
1121cdf0e10cSrcweir 	const ::rtl::OUString sPropertyReferenceFieldPart;
1122cdf0e10cSrcweir 	const ::rtl::OUString sPropertyReferenceFieldSource;
1123cdf0e10cSrcweir 	const ::rtl::OUString sPropertySourceName;
1124cdf0e10cSrcweir 	const ::rtl::OUString sPropertyCurrentPresentation;
1125cdf0e10cSrcweir 
1126cdf0e10cSrcweir 	::rtl::OUString sName;
1127cdf0e10cSrcweir 	sal_uInt16 nElementToken;
1128cdf0e10cSrcweir 	sal_Int16 nSource;
1129cdf0e10cSrcweir 	sal_Int16 nType;
1130cdf0e10cSrcweir 	sal_Int16 nSequenceNumber;
1131cdf0e10cSrcweir 
1132cdf0e10cSrcweir 	sal_Bool bNameOK;
1133cdf0e10cSrcweir 	sal_Bool bTypeOK;
1134cdf0e10cSrcweir 	sal_Bool bSeqNumberOK;
1135cdf0e10cSrcweir 
1136cdf0e10cSrcweir public:
1137cdf0e10cSrcweir 
1138cdf0e10cSrcweir 	TYPEINFO();
1139cdf0e10cSrcweir 
1140cdf0e10cSrcweir 	XMLReferenceFieldImportContext(SvXMLImport& rImport,
1141cdf0e10cSrcweir 								   XMLTextImportHelper& rHlp,
1142cdf0e10cSrcweir 								   sal_uInt16 nToken,
1143cdf0e10cSrcweir 								   sal_uInt16 nPrfx,
1144cdf0e10cSrcweir 								   const ::rtl::OUString& sLocalName);
1145cdf0e10cSrcweir 
1146cdf0e10cSrcweir protected:
1147cdf0e10cSrcweir 
1148cdf0e10cSrcweir 	/// start element
1149cdf0e10cSrcweir 	virtual void StartElement(
1150cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
1151cdf0e10cSrcweir 		::com::sun::star::xml::sax::XAttributeList> & xAttrList);
1152cdf0e10cSrcweir 
1153cdf0e10cSrcweir 	/// process attribute values
1154cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
1155cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
1156cdf0e10cSrcweir 
1157cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
1158cdf0e10cSrcweir 	virtual void PrepareField(
1159cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
1160cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
1161cdf0e10cSrcweir };
1162cdf0e10cSrcweir 
1163cdf0e10cSrcweir 
1164cdf0e10cSrcweir 
1165cdf0e10cSrcweir /** import dde field declaration container (<text:dde-connection-decls>) */
1166cdf0e10cSrcweir class XMLDdeFieldDeclsImportContext : public SvXMLImportContext
1167cdf0e10cSrcweir {
1168cdf0e10cSrcweir 
1169cdf0e10cSrcweir 	SvXMLTokenMap aTokenMap;
1170cdf0e10cSrcweir 
1171cdf0e10cSrcweir public:
1172cdf0e10cSrcweir 
1173cdf0e10cSrcweir 	TYPEINFO();
1174cdf0e10cSrcweir 
1175cdf0e10cSrcweir 	XMLDdeFieldDeclsImportContext(SvXMLImport& rImport,
1176cdf0e10cSrcweir 								  sal_uInt16 nPrfx,
1177cdf0e10cSrcweir 								  const ::rtl::OUString& sLocalName);
1178cdf0e10cSrcweir 
1179cdf0e10cSrcweir 	virtual SvXMLImportContext *CreateChildContext(
1180cdf0e10cSrcweir 		sal_uInt16 nPrefix,
1181cdf0e10cSrcweir 		const ::rtl::OUString& rLocalName,
1182cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
1183cdf0e10cSrcweir 		::com::sun::star::xml::sax::XAttributeList> & xAttrList );
1184cdf0e10cSrcweir 
1185cdf0e10cSrcweir 
1186cdf0e10cSrcweir };
1187cdf0e10cSrcweir 
1188cdf0e10cSrcweir 
1189cdf0e10cSrcweir 
1190cdf0e10cSrcweir /** import dde field declaration (<text:dde-connection-decl>) */
1191cdf0e10cSrcweir class XMLDdeFieldDeclImportContext : public SvXMLImportContext
1192cdf0e10cSrcweir {
1193cdf0e10cSrcweir 	const ::rtl::OUString sPropertyIsAutomaticUpdate;
1194cdf0e10cSrcweir 	const ::rtl::OUString sPropertyName;
1195cdf0e10cSrcweir 	const ::rtl::OUString sPropertyDDECommandType;
1196cdf0e10cSrcweir 	const ::rtl::OUString sPropertyDDECommandFile;
1197cdf0e10cSrcweir 	const ::rtl::OUString sPropertyDDECommandElement;
1198cdf0e10cSrcweir 
1199cdf0e10cSrcweir 	const SvXMLTokenMap& rTokenMap;
1200cdf0e10cSrcweir 
1201cdf0e10cSrcweir public:
1202cdf0e10cSrcweir 
1203cdf0e10cSrcweir 	TYPEINFO();
1204cdf0e10cSrcweir 
1205cdf0e10cSrcweir 	XMLDdeFieldDeclImportContext(SvXMLImport& rImport,
1206cdf0e10cSrcweir 								 sal_uInt16 nPrfx,
1207cdf0e10cSrcweir 								 const ::rtl::OUString& sLocalName,
1208cdf0e10cSrcweir 								 const SvXMLTokenMap& rMap);
1209cdf0e10cSrcweir 
1210cdf0e10cSrcweir 	// create fieldmaster
1211cdf0e10cSrcweir 	virtual void StartElement(
1212cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
1213cdf0e10cSrcweir 		::com::sun::star::xml::sax::XAttributeList> & xAttrList);
1214cdf0e10cSrcweir };
1215cdf0e10cSrcweir 
1216cdf0e10cSrcweir 
1217cdf0e10cSrcweir 
1218cdf0e10cSrcweir /** import dde fields (<text:dde-connection>) */
1219cdf0e10cSrcweir class XMLDdeFieldImportContext : public XMLTextFieldImportContext
1220cdf0e10cSrcweir {
1221cdf0e10cSrcweir 	::rtl::OUString sName;
1222cdf0e10cSrcweir     ::rtl::OUString sPropertyContent;
1223cdf0e10cSrcweir public:
1224cdf0e10cSrcweir 
1225cdf0e10cSrcweir 	TYPEINFO();
1226cdf0e10cSrcweir 
1227cdf0e10cSrcweir 	XMLDdeFieldImportContext(SvXMLImport& rImport,
1228cdf0e10cSrcweir 							 XMLTextImportHelper& rHlp,
1229cdf0e10cSrcweir 							 sal_uInt16 nPrfx,
1230cdf0e10cSrcweir 							 const ::rtl::OUString& sLocalName);
1231cdf0e10cSrcweir 
1232cdf0e10cSrcweir protected:
1233cdf0e10cSrcweir 
1234cdf0e10cSrcweir 	/// process attribute values
1235cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
1236cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
1237cdf0e10cSrcweir 
1238cdf0e10cSrcweir 	/// create textfield, attach master, and insert into document
1239cdf0e10cSrcweir 	virtual void EndElement();
1240cdf0e10cSrcweir 
1241cdf0e10cSrcweir 	/// empty method
1242cdf0e10cSrcweir 	virtual void PrepareField(
1243cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
1244cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
1245cdf0e10cSrcweir 
1246cdf0e10cSrcweir };
1247cdf0e10cSrcweir 
1248cdf0e10cSrcweir 
1249cdf0e10cSrcweir /** import sheet name fields (Calc) dde fields (<text:sheet-name>) */
1250cdf0e10cSrcweir class XMLSheetNameImportContext : public XMLTextFieldImportContext
1251cdf0e10cSrcweir {
1252cdf0e10cSrcweir 
1253cdf0e10cSrcweir public:
1254cdf0e10cSrcweir 
1255cdf0e10cSrcweir 	TYPEINFO();
1256cdf0e10cSrcweir 
1257cdf0e10cSrcweir 	XMLSheetNameImportContext(SvXMLImport& rImport,
1258cdf0e10cSrcweir 							  XMLTextImportHelper& rHlp,
1259cdf0e10cSrcweir 							  sal_uInt16 nPrfx,
1260cdf0e10cSrcweir 							  const ::rtl::OUString& sLocalName);
1261cdf0e10cSrcweir 
1262cdf0e10cSrcweir protected:
1263cdf0e10cSrcweir 
1264cdf0e10cSrcweir 	/// no attributes -> empty method
1265cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
1266cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
1267cdf0e10cSrcweir 
1268cdf0e10cSrcweir 	/// no atributes -> empty method
1269cdf0e10cSrcweir 	virtual void PrepareField(
1270cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
1271cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
1272cdf0e10cSrcweir };
1273cdf0e10cSrcweir 
1274cdf0e10cSrcweir /** import hyperlinks as URL fields (Calc, Impress, Draw) (<office:a>) */
1275cdf0e10cSrcweir class XMLUrlFieldImportContext : public XMLTextFieldImportContext
1276cdf0e10cSrcweir {
1277cdf0e10cSrcweir 
1278cdf0e10cSrcweir 	const ::rtl::OUString sPropertyURL;
1279cdf0e10cSrcweir 	const ::rtl::OUString sPropertyTargetFrame;
1280cdf0e10cSrcweir 	const ::rtl::OUString sPropertyRepresentation;
1281cdf0e10cSrcweir 
1282cdf0e10cSrcweir 	::rtl::OUString sURL;
1283cdf0e10cSrcweir 	::rtl::OUString sFrame;
1284cdf0e10cSrcweir 	sal_Bool bFrameOK;
1285cdf0e10cSrcweir 
1286cdf0e10cSrcweir public:
1287cdf0e10cSrcweir 
1288cdf0e10cSrcweir 	TYPEINFO();
1289cdf0e10cSrcweir 
1290cdf0e10cSrcweir 	XMLUrlFieldImportContext(SvXMLImport& rImport,
1291cdf0e10cSrcweir 							 XMLTextImportHelper& rHlp,
1292cdf0e10cSrcweir 							 sal_uInt16 nPrfx,
1293cdf0e10cSrcweir 							 const ::rtl::OUString& sLocalName);
1294cdf0e10cSrcweir 
1295cdf0e10cSrcweir protected:
1296cdf0e10cSrcweir 
1297cdf0e10cSrcweir 	/// no attributes -> empty method
1298cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
1299cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
1300cdf0e10cSrcweir 
1301cdf0e10cSrcweir 	/// no atributes -> empty method
1302cdf0e10cSrcweir 	virtual void PrepareField(
1303cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
1304cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
1305cdf0e10cSrcweir };
1306cdf0e10cSrcweir 
1307cdf0e10cSrcweir /** import bibliography info fields (<text:bibliography-mark>) */
1308cdf0e10cSrcweir class XMLBibliographyFieldImportContext : public XMLTextFieldImportContext
1309cdf0e10cSrcweir {
1310cdf0e10cSrcweir 
1311cdf0e10cSrcweir 	const ::rtl::OUString sPropertyFields;
1312cdf0e10cSrcweir 
1313cdf0e10cSrcweir 	::std::vector< ::com::sun::star::beans::PropertyValue> aValues;
1314cdf0e10cSrcweir 
1315cdf0e10cSrcweir public:
1316cdf0e10cSrcweir 
1317cdf0e10cSrcweir 	TYPEINFO();
1318cdf0e10cSrcweir 
1319cdf0e10cSrcweir 	XMLBibliographyFieldImportContext(SvXMLImport& rImport,
1320cdf0e10cSrcweir 									  XMLTextImportHelper& rHlp,
1321cdf0e10cSrcweir 									  sal_uInt16 nPrfx,
1322cdf0e10cSrcweir 									  const ::rtl::OUString& sLocalName);
1323cdf0e10cSrcweir 
1324cdf0e10cSrcweir protected:
1325cdf0e10cSrcweir 
1326cdf0e10cSrcweir 	/// process attributes (fill aValues)
1327cdf0e10cSrcweir 	virtual void StartElement(
1328cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
1329cdf0e10cSrcweir 		::com::sun::star::xml::sax::XAttributeList> & xAttrList);
1330cdf0e10cSrcweir 
1331cdf0e10cSrcweir 	/// empty method; all attributes are handled in StartElement
1332cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
1333cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
1334cdf0e10cSrcweir 
1335cdf0e10cSrcweir 	/// convert aValues into sequence and set property
1336cdf0e10cSrcweir 	virtual void PrepareField(
1337cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
1338cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
1339cdf0e10cSrcweir 
1340cdf0e10cSrcweir 	static const sal_Char* MapBibliographyFieldName(::rtl::OUString sName);
1341cdf0e10cSrcweir 
1342cdf0e10cSrcweir };
1343cdf0e10cSrcweir 
1344cdf0e10cSrcweir 
13453b32dd21SOliver-Rainer Wittmann /** Import an annotation field (<office:annotation>) */
1346cdf0e10cSrcweir class XMLAnnotationImportContext : public XMLTextFieldImportContext
1347cdf0e10cSrcweir {
13483b32dd21SOliver-Rainer Wittmann     const ::rtl::OUString sPropertyName;
13493b32dd21SOliver-Rainer Wittmann     const ::rtl::OUString sPropertyAuthor;
13503b32dd21SOliver-Rainer Wittmann     const ::rtl::OUString sPropertyInitials;
13513b32dd21SOliver-Rainer Wittmann     const ::rtl::OUString sPropertyContent;
13523b32dd21SOliver-Rainer Wittmann     const ::rtl::OUString sPropertyDate;
13533b32dd21SOliver-Rainer Wittmann     const ::rtl::OUString sPropertyTextRange;
13543b32dd21SOliver-Rainer Wittmann 
13553b32dd21SOliver-Rainer Wittmann     ::rtl::OUString aName;
13563b32dd21SOliver-Rainer Wittmann 
13573b32dd21SOliver-Rainer Wittmann     ::rtl::OUStringBuffer aAuthorBuffer;
13583b32dd21SOliver-Rainer Wittmann     ::rtl::OUStringBuffer aInitialsBuffer;
13593b32dd21SOliver-Rainer Wittmann     ::rtl::OUStringBuffer aTextBuffer;
13603b32dd21SOliver-Rainer Wittmann     ::rtl::OUStringBuffer aDateBuffer;
13613b32dd21SOliver-Rainer Wittmann 
13623b32dd21SOliver-Rainer Wittmann     com::sun::star::uno::Reference < com::sun::star::beans::XPropertySet > mxField;
13633b32dd21SOliver-Rainer Wittmann     com::sun::star::uno::Reference < com::sun::star::text::XTextCursor >  mxCursor;
13643b32dd21SOliver-Rainer Wittmann     com::sun::star::uno::Reference < com::sun::star::text::XTextCursor >  mxOldCursor;
1365*dec99bbdSOliver-Rainer Wittmann 
13663b32dd21SOliver-Rainer Wittmann     const sal_uInt16 m_nToken;
1367cdf0e10cSrcweir 
1368cdf0e10cSrcweir public:
1369cdf0e10cSrcweir 
13703b32dd21SOliver-Rainer Wittmann     TYPEINFO();
1371cdf0e10cSrcweir 
13723b32dd21SOliver-Rainer Wittmann     XMLAnnotationImportContext(
13733b32dd21SOliver-Rainer Wittmann         SvXMLImport& rImport,
13743b32dd21SOliver-Rainer Wittmann         XMLTextImportHelper& rHlp,
13753b32dd21SOliver-Rainer Wittmann         sal_uInt16 nToken,
13763b32dd21SOliver-Rainer Wittmann         sal_uInt16 nPrfx,
13773b32dd21SOliver-Rainer Wittmann         const ::rtl::OUString& sLocalName);
1378cdf0e10cSrcweir 
1379cdf0e10cSrcweir protected:
1380cdf0e10cSrcweir 
1381cdf0e10cSrcweir 	/// process attributes
1382cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
1383cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
1384cdf0e10cSrcweir 
1385cdf0e10cSrcweir 	/// set properties
1386cdf0e10cSrcweir 	virtual void PrepareField(
1387*dec99bbdSOliver-Rainer Wittmann 		const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & xPropertySet);
1388cdf0e10cSrcweir 
1389cdf0e10cSrcweir 	virtual SvXMLImportContext *CreateChildContext(
1390cdf0e10cSrcweir 		sal_uInt16 nPrefix,
1391cdf0e10cSrcweir 		const ::rtl::OUString& rLocalName,
1392cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
1393cdf0e10cSrcweir 				::com::sun::star::xml::sax::XAttributeList >& xAttrList );
1394cdf0e10cSrcweir 	virtual void EndElement();
1395cdf0e10cSrcweir };
1396cdf0e10cSrcweir 
1397cdf0e10cSrcweir 
1398cdf0e10cSrcweir /** Import a script field (<text:script>) */
1399cdf0e10cSrcweir class XMLScriptImportContext : public XMLTextFieldImportContext
1400cdf0e10cSrcweir {
1401cdf0e10cSrcweir 	const ::rtl::OUString sPropertyScriptType;
1402cdf0e10cSrcweir 	const ::rtl::OUString sPropertyURLContent;
1403cdf0e10cSrcweir 	const ::rtl::OUString sPropertyContent;
1404cdf0e10cSrcweir 
1405cdf0e10cSrcweir 	::rtl::OUString sContent;
1406cdf0e10cSrcweir 	::rtl::OUString sScriptType;
1407cdf0e10cSrcweir 
1408cdf0e10cSrcweir 	sal_Bool bContentOK;
1409cdf0e10cSrcweir 	sal_Bool bScriptTypeOK;
1410cdf0e10cSrcweir 	sal_Bool bUrlContent;
1411cdf0e10cSrcweir 
1412cdf0e10cSrcweir public:
1413cdf0e10cSrcweir 
1414cdf0e10cSrcweir 	TYPEINFO();
1415cdf0e10cSrcweir 
1416cdf0e10cSrcweir 	XMLScriptImportContext(SvXMLImport& rImport,
1417cdf0e10cSrcweir 						   XMLTextImportHelper& rHlp,
1418cdf0e10cSrcweir 						   sal_uInt16 nPrfx,
1419cdf0e10cSrcweir 						   const ::rtl::OUString& sLocalName);
1420cdf0e10cSrcweir 
1421cdf0e10cSrcweir protected:
1422cdf0e10cSrcweir 
1423cdf0e10cSrcweir 	/// process attributes
1424cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
1425cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
1426cdf0e10cSrcweir 
1427cdf0e10cSrcweir 	/// set properties
1428cdf0e10cSrcweir 	virtual void PrepareField(
1429cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
1430cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
1431cdf0e10cSrcweir };
1432cdf0e10cSrcweir 
1433cdf0e10cSrcweir /** import measure fields (<text:measure>) */
1434cdf0e10cSrcweir class XMLMeasureFieldImportContext : public XMLTextFieldImportContext
1435cdf0e10cSrcweir {
1436cdf0e10cSrcweir 	sal_Int16 mnKind;
1437cdf0e10cSrcweir public:
1438cdf0e10cSrcweir 
1439cdf0e10cSrcweir 	TYPEINFO();
1440cdf0e10cSrcweir 
1441cdf0e10cSrcweir 	XMLMeasureFieldImportContext(SvXMLImport& rImport,
1442cdf0e10cSrcweir 									XMLTextImportHelper& rHlp,
1443cdf0e10cSrcweir 									sal_uInt16 nPrfx,
1444cdf0e10cSrcweir 									const ::rtl::OUString& sLocalName);
1445cdf0e10cSrcweir 
1446cdf0e10cSrcweir protected:
1447cdf0e10cSrcweir 
1448cdf0e10cSrcweir 	/// process attribute values
1449cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
1450cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
1451cdf0e10cSrcweir 
1452cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
1453cdf0e10cSrcweir 	virtual void PrepareField(
1454cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
1455cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
1456cdf0e10cSrcweir };
1457cdf0e10cSrcweir 
1458cdf0e10cSrcweir 
1459cdf0e10cSrcweir /** dropdown field (filter legacy) */
1460cdf0e10cSrcweir class XMLDropDownFieldImportContext : public XMLTextFieldImportContext
1461cdf0e10cSrcweir {
1462cdf0e10cSrcweir     std::vector<rtl::OUString> aLabels;
1463cdf0e10cSrcweir     rtl::OUString sName;
1464cdf0e10cSrcweir     rtl::OUString sHelp;
1465cdf0e10cSrcweir     rtl::OUString sHint;
1466cdf0e10cSrcweir     sal_Int32 nSelected;
1467cdf0e10cSrcweir     bool bNameOK;
1468cdf0e10cSrcweir     bool bHelpOK;
1469cdf0e10cSrcweir     bool bHintOK;
1470cdf0e10cSrcweir 
1471cdf0e10cSrcweir     const rtl::OUString sPropertyItems;
1472cdf0e10cSrcweir     const rtl::OUString sPropertySelectedItem;
1473cdf0e10cSrcweir     const rtl::OUString sPropertyName;
1474cdf0e10cSrcweir     const rtl::OUString sPropertyHelp;
1475cdf0e10cSrcweir     const rtl::OUString sPropertyToolTip;
1476cdf0e10cSrcweir 
1477cdf0e10cSrcweir public:
1478cdf0e10cSrcweir 	TYPEINFO();
1479cdf0e10cSrcweir 
1480cdf0e10cSrcweir 	XMLDropDownFieldImportContext(SvXMLImport& rImport,
1481cdf0e10cSrcweir 									XMLTextImportHelper& rHlp,
1482cdf0e10cSrcweir 									sal_uInt16 nPrfx,
1483cdf0e10cSrcweir 									const ::rtl::OUString& sLocalName);
1484cdf0e10cSrcweir 
1485cdf0e10cSrcweir 	virtual SvXMLImportContext* CreateChildContext(
1486cdf0e10cSrcweir         sal_uInt16 nPrefix,
1487cdf0e10cSrcweir         const ::rtl::OUString& rLocalName,
1488cdf0e10cSrcweir         const ::com::sun::star::uno::Reference<com::sun::star::xml::sax::XAttributeList >& xAttrList );
1489cdf0e10cSrcweir 
1490cdf0e10cSrcweir protected:
1491cdf0e10cSrcweir 
1492cdf0e10cSrcweir 	/// process attribute values
1493cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
1494cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
1495cdf0e10cSrcweir 
1496cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
1497cdf0e10cSrcweir 	virtual void PrepareField(
1498cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
1499cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
1500cdf0e10cSrcweir };
1501cdf0e10cSrcweir 
1502cdf0e10cSrcweir /** import header fields (<draw:header>) */
1503cdf0e10cSrcweir class XMLHeaderFieldImportContext : public XMLTextFieldImportContext
1504cdf0e10cSrcweir {
1505cdf0e10cSrcweir public:
1506cdf0e10cSrcweir 	TYPEINFO();
1507cdf0e10cSrcweir 
1508cdf0e10cSrcweir 	XMLHeaderFieldImportContext(
1509cdf0e10cSrcweir 		SvXMLImport& rImport,					/// XML Import
1510cdf0e10cSrcweir 		XMLTextImportHelper& rHlp,				/// Text import helper
1511cdf0e10cSrcweir 		sal_uInt16 nPrfx,						/// namespace prefix
1512cdf0e10cSrcweir 		const ::rtl::OUString& sLocalName);		/// element name w/o prefix
1513cdf0e10cSrcweir 
1514cdf0e10cSrcweir 	/// process attribute values
1515cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
1516cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
1517cdf0e10cSrcweir 
1518cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
1519cdf0e10cSrcweir 	virtual void PrepareField(
1520cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
1521cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
1522cdf0e10cSrcweir };
1523cdf0e10cSrcweir 
1524cdf0e10cSrcweir /** import footer fields (<draw:footer>) */
1525cdf0e10cSrcweir class XMLFooterFieldImportContext : public XMLTextFieldImportContext
1526cdf0e10cSrcweir {
1527cdf0e10cSrcweir public:
1528cdf0e10cSrcweir 	TYPEINFO();
1529cdf0e10cSrcweir 
1530cdf0e10cSrcweir 	XMLFooterFieldImportContext(
1531cdf0e10cSrcweir 		SvXMLImport& rImport,					/// XML Import
1532cdf0e10cSrcweir 		XMLTextImportHelper& rHlp,				/// Text import helper
1533cdf0e10cSrcweir 		sal_uInt16 nPrfx,						/// namespace prefix
1534cdf0e10cSrcweir 		const ::rtl::OUString& sLocalName);		/// element name w/o prefix
1535cdf0e10cSrcweir 
1536cdf0e10cSrcweir 	/// process attribute values
1537cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
1538cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
1539cdf0e10cSrcweir 
1540cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
1541cdf0e10cSrcweir 	virtual void PrepareField(
1542cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
1543cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
1544cdf0e10cSrcweir };
1545cdf0e10cSrcweir 
1546cdf0e10cSrcweir /** import footer fields (<draw:date-and-time>) */
1547cdf0e10cSrcweir class XMLDateTimeFieldImportContext : public XMLTextFieldImportContext
1548cdf0e10cSrcweir {
1549cdf0e10cSrcweir public:
1550cdf0e10cSrcweir 	TYPEINFO();
1551cdf0e10cSrcweir 
1552cdf0e10cSrcweir 	XMLDateTimeFieldImportContext(
1553cdf0e10cSrcweir 		SvXMLImport& rImport,					/// XML Import
1554cdf0e10cSrcweir 		XMLTextImportHelper& rHlp,				/// Text import helper
1555cdf0e10cSrcweir 		sal_uInt16 nPrfx,						/// namespace prefix
1556cdf0e10cSrcweir 		const ::rtl::OUString& sLocalName);		/// element name w/o prefix
1557cdf0e10cSrcweir 
1558cdf0e10cSrcweir 	/// process attribute values
1559cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
1560cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
1561cdf0e10cSrcweir 
1562cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
1563cdf0e10cSrcweir 	virtual void PrepareField(
1564cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
1565cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
1566cdf0e10cSrcweir };
1567cdf0e10cSrcweir 
1568cdf0e10cSrcweir class XMLCustomPropertyFieldImportContext : public XMLTextFieldImportContext
1569cdf0e10cSrcweir {
1570cdf0e10cSrcweir 	::rtl::OUString sName;
1571cdf0e10cSrcweir 	::com::sun::star::uno::Any aValue;
1572cdf0e10cSrcweir 	const ::rtl::OUString sPropertyName;
1573cdf0e10cSrcweir 	const ::rtl::OUString sPropertyValue;
1574cdf0e10cSrcweir 
1575cdf0e10cSrcweir public:
1576cdf0e10cSrcweir 
1577cdf0e10cSrcweir 	TYPEINFO();
1578cdf0e10cSrcweir 
1579cdf0e10cSrcweir 	XMLCustomPropertyFieldImportContext (SvXMLImport& rImport,
1580cdf0e10cSrcweir 									XMLTextImportHelper& rHlp,
1581cdf0e10cSrcweir 									sal_uInt16 nPrfx,
1582cdf0e10cSrcweir 									const ::rtl::OUString& sLocalName);
1583cdf0e10cSrcweir 
1584cdf0e10cSrcweir protected:
1585cdf0e10cSrcweir 
1586cdf0e10cSrcweir 	/// process attribute values
1587cdf0e10cSrcweir 	virtual void ProcessAttribute( sal_uInt16 nAttrToken,
1588cdf0e10cSrcweir 								   const ::rtl::OUString& sAttrValue );
1589cdf0e10cSrcweir 
1590cdf0e10cSrcweir 	/// prepare XTextField for insertion into document
1591cdf0e10cSrcweir 	virtual void PrepareField(
1592cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
1593cdf0e10cSrcweir 		::com::sun::star::beans::XPropertySet> & xPropertySet);
1594cdf0e10cSrcweir };
1595cdf0e10cSrcweir 
1596cdf0e10cSrcweir 
1597cdf0e10cSrcweir #endif
1598