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

Generated by: LCOV version 1.11