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