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