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