LCOV - code coverage report
Current view: top level - usr/local/src/libreoffice/xmloff/inc - txtfldi.hxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 15 43 34.9 %
Date: 2013-07-09 Functions: 28 83 33.7 %
Legend: Lines: hit not hit

          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: */

Generated by: LCOV version 1.10