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

Generated by: LCOV version 1.10