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 * XML import of all variable related text fields plus database display field 27*b1cdbd2cSJim Jagielski */ 28*b1cdbd2cSJim Jagielski 29*b1cdbd2cSJim Jagielski #ifndef _XMLOFF_TXTVFLDI_HXX 30*b1cdbd2cSJim Jagielski #define _XMLOFF_TXTVFLDI_HXX 31*b1cdbd2cSJim Jagielski 32*b1cdbd2cSJim Jagielski #include "txtvfldi.hxx" 33*b1cdbd2cSJim Jagielski #include "txtfldi.hxx" 34*b1cdbd2cSJim Jagielski #include <com/sun/star/beans/XPropertySet.hpp> 35*b1cdbd2cSJim Jagielski #include <com/sun/star/beans/XPropertySetInfo.hpp> 36*b1cdbd2cSJim Jagielski 37*b1cdbd2cSJim Jagielski 38*b1cdbd2cSJim Jagielski 39*b1cdbd2cSJim Jagielski /// variable type (for XMLSetVarFieldImportContext) 40*b1cdbd2cSJim Jagielski enum VarType 41*b1cdbd2cSJim Jagielski { 42*b1cdbd2cSJim Jagielski VarTypeSimple, 43*b1cdbd2cSJim Jagielski VarTypeUserField, 44*b1cdbd2cSJim Jagielski VarTypeSequence 45*b1cdbd2cSJim Jagielski }; 46*b1cdbd2cSJim Jagielski 47*b1cdbd2cSJim Jagielski 48*b1cdbd2cSJim Jagielski 49*b1cdbd2cSJim Jagielski /** helper class: parses value-type and associated value attributes */ 50*b1cdbd2cSJim Jagielski class XMLValueImportHelper 51*b1cdbd2cSJim Jagielski { 52*b1cdbd2cSJim Jagielski 53*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyContent; 54*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyValue; 55*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyFormula; 56*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyNumberFormat; 57*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyIsFixedLanguage; 58*b1cdbd2cSJim Jagielski 59*b1cdbd2cSJim Jagielski SvXMLImport& rImport; 60*b1cdbd2cSJim Jagielski XMLTextImportHelper& rHelper; 61*b1cdbd2cSJim Jagielski 62*b1cdbd2cSJim Jagielski ::rtl::OUString sValue; /// string value (only valid if bStringValueOK) 63*b1cdbd2cSJim Jagielski double fValue; /// double value (only valid if bFloatValueOK) 64*b1cdbd2cSJim Jagielski sal_Int32 nFormatKey; /// format key (only valid of bFormatOK) 65*b1cdbd2cSJim Jagielski ::rtl::OUString sFormula; /// formula string 66*b1cdbd2cSJim Jagielski ::rtl::OUString sDefault; /// default (see bStringDefault/bFormulaDef.) 67*b1cdbd2cSJim Jagielski sal_Bool bIsDefaultLanguage;/// format (of nFormatKey) has system language? 68*b1cdbd2cSJim Jagielski 69*b1cdbd2cSJim Jagielski sal_Bool bStringType; /// is this a string (or a float) type? 70*b1cdbd2cSJim Jagielski sal_Bool bFormatOK; /// have we read a style:data-style-name attr.? 71*b1cdbd2cSJim Jagielski sal_Bool bTypeOK; /// have we read a value-type attribute? 72*b1cdbd2cSJim Jagielski sal_Bool bStringValueOK; /// have we read a string-value attr.? 73*b1cdbd2cSJim Jagielski sal_Bool bFloatValueOK; /// have we read any of the float attr.s? 74*b1cdbd2cSJim Jagielski sal_Bool bFormulaOK; /// have we read the formula attribute? 75*b1cdbd2cSJim Jagielski 76*b1cdbd2cSJim Jagielski const sal_Bool bSetType; /// should PrepareField set the SetExp subtype? 77*b1cdbd2cSJim Jagielski const sal_Bool bSetValue; /// should PrepareField set content/value? 78*b1cdbd2cSJim Jagielski const sal_Bool bSetStyle; /// should PrepareField set NumberFormat? 79*b1cdbd2cSJim Jagielski const sal_Bool bSetFormula; /// should PrepareField set Formula? 80*b1cdbd2cSJim Jagielski 81*b1cdbd2cSJim Jagielski const sal_Bool bStringDefault; /// default: string-value = content 82*b1cdbd2cSJim Jagielski const sal_Bool bFormulaDefault; /// default: formula = content 83*b1cdbd2cSJim Jagielski 84*b1cdbd2cSJim Jagielski public: 85*b1cdbd2cSJim Jagielski XMLValueImportHelper( 86*b1cdbd2cSJim Jagielski SvXMLImport& rImprt, /// XML Import 87*b1cdbd2cSJim Jagielski XMLTextImportHelper& rHlp, /// text import helper 88*b1cdbd2cSJim Jagielski sal_Bool bType, /// process type (PrepareField) 89*b1cdbd2cSJim Jagielski sal_Bool bStyle, /// process data style (P.F.) 90*b1cdbd2cSJim Jagielski sal_Bool bValue, /// process value (Prep.Field) 91*b1cdbd2cSJim Jagielski sal_Bool bFormula); /// process formula (Prep.F.) 92*b1cdbd2cSJim Jagielski 93*b1cdbd2cSJim Jagielski virtual ~XMLValueImportHelper(); 94*b1cdbd2cSJim Jagielski 95*b1cdbd2cSJim Jagielski /// process attribute values 96*b1cdbd2cSJim Jagielski virtual void ProcessAttribute( sal_uInt16 nAttrToken, 97*b1cdbd2cSJim Jagielski const ::rtl::OUString& sAttrValue ); 98*b1cdbd2cSJim Jagielski 99*b1cdbd2cSJim Jagielski /// prepare XTextField for insertion into document 100*b1cdbd2cSJim Jagielski virtual void PrepareField( 101*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 102*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertySet> & xPropertySet); 103*b1cdbd2cSJim Jagielski 104*b1cdbd2cSJim Jagielski /// is value a string (rather than double)? IsStringValue()105*b1cdbd2cSJim Jagielski inline sal_Bool IsStringValue() { return bStringType; } 106*b1cdbd2cSJim Jagielski 107*b1cdbd2cSJim Jagielski /// has format been read? IsFormatOK()108*b1cdbd2cSJim Jagielski inline sal_Bool IsFormatOK() { return bFormatOK; } 109*b1cdbd2cSJim Jagielski SetDefault(const::rtl::OUString & sStr)110*b1cdbd2cSJim Jagielski inline void SetDefault(const ::rtl::OUString& sStr) { sDefault = sStr; } 111*b1cdbd2cSJim Jagielski }; 112*b1cdbd2cSJim Jagielski 113*b1cdbd2cSJim Jagielski 114*b1cdbd2cSJim Jagielski 115*b1cdbd2cSJim Jagielski /** 116*b1cdbd2cSJim Jagielski * abstract parent class for all variable related fields 117*b1cdbd2cSJim Jagielski * - variable-set/get/decl (not -decls), 118*b1cdbd2cSJim Jagielski * - user-field-get/decl (not -decls), 119*b1cdbd2cSJim Jagielski * - sequence/-decl (not -decls), 120*b1cdbd2cSJim Jagielski * - expression, 121*b1cdbd2cSJim Jagielski * - text-input 122*b1cdbd2cSJim Jagielski * 123*b1cdbd2cSJim Jagielski * Processes the following attributes: 124*b1cdbd2cSJim Jagielski * - name 125*b1cdbd2cSJim Jagielski * - formula 126*b1cdbd2cSJim Jagielski * - display 127*b1cdbd2cSJim Jagielski * - value, value-type, data-style-name (via XMLValueImportHelper) 128*b1cdbd2cSJim Jagielski * - description. 129*b1cdbd2cSJim Jagielski * 130*b1cdbd2cSJim Jagielski * Each attribute has a corresponding member, a bool variable to indicate 131*b1cdbd2cSJim Jagielski * whether it was set or not, and a bool variable whether it should be set 132*b1cdbd2cSJim Jagielski * using the standard property name. 133*b1cdbd2cSJim Jagielski * 134*b1cdbd2cSJim Jagielski * bValid is set true, when name is found! 135*b1cdbd2cSJim Jagielski * (Most variable related fields are valid, if a name is 136*b1cdbd2cSJim Jagielski * found. However, some are always valid. In this case, setting bValid 137*b1cdbd2cSJim Jagielski * does not matter.) 138*b1cdbd2cSJim Jagielski */ 139*b1cdbd2cSJim Jagielski class XMLVarFieldImportContext : public XMLTextFieldImportContext 140*b1cdbd2cSJim Jagielski { 141*b1cdbd2cSJim Jagielski protected: 142*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyContent; 143*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyHint; 144*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyHelp; 145*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyTooltip; 146*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyIsVisible; 147*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyIsDisplayFormula; 148*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyCurrentPresentation; 149*b1cdbd2cSJim Jagielski 150*b1cdbd2cSJim Jagielski private: 151*b1cdbd2cSJim Jagielski ::rtl::OUString sName; /// name attribute 152*b1cdbd2cSJim Jagielski ::rtl::OUString sFormula; /// formula attribute 153*b1cdbd2cSJim Jagielski ::rtl::OUString sDescription; /// description 154*b1cdbd2cSJim Jagielski ::rtl::OUString sHelp; /// help text 155*b1cdbd2cSJim Jagielski ::rtl::OUString sHint; /// hint 156*b1cdbd2cSJim Jagielski XMLValueImportHelper aValueHelper; /// value, value-type, and style 157*b1cdbd2cSJim Jagielski sal_Bool bDisplayFormula; /// display formula?(rather than value) 158*b1cdbd2cSJim Jagielski sal_Bool bDisplayNone; /// hide field? 159*b1cdbd2cSJim Jagielski 160*b1cdbd2cSJim Jagielski sal_Bool bNameOK; /// sName was set 161*b1cdbd2cSJim Jagielski sal_Bool bFormulaOK; /// sFormula was set 162*b1cdbd2cSJim Jagielski sal_Bool bDescriptionOK; /// sDescription was set 163*b1cdbd2cSJim Jagielski sal_Bool bHelpOK; /// sHelp was set 164*b1cdbd2cSJim Jagielski sal_Bool bHintOK; /// sHint was set 165*b1cdbd2cSJim Jagielski sal_Bool bDisplayOK; /// sDisplayFormula/-None were set 166*b1cdbd2cSJim Jagielski 167*b1cdbd2cSJim Jagielski sal_Bool bSetName; /// set sName with ???-property 168*b1cdbd2cSJim Jagielski sal_Bool bSetFormula; /// set Formula property 169*b1cdbd2cSJim Jagielski sal_Bool bSetFormulaDefault; /// use content as default for formula 170*b1cdbd2cSJim Jagielski sal_Bool bSetDescription; /// set sDescription with Hint-property 171*b1cdbd2cSJim Jagielski sal_Bool bSetHelp; 172*b1cdbd2cSJim Jagielski sal_Bool bSetHint; 173*b1cdbd2cSJim Jagielski sal_Bool bSetVisible; /// set IsVisible 174*b1cdbd2cSJim Jagielski sal_Bool bSetDisplayFormula; /// set DisplayFormula (sub type???) 175*b1cdbd2cSJim Jagielski sal_Bool bSetPresentation; /// set presentation frm elem. content? 176*b1cdbd2cSJim Jagielski 177*b1cdbd2cSJim Jagielski public: 178*b1cdbd2cSJim Jagielski 179*b1cdbd2cSJim Jagielski TYPEINFO(); 180*b1cdbd2cSJim Jagielski 181*b1cdbd2cSJim Jagielski XMLVarFieldImportContext( 182*b1cdbd2cSJim Jagielski // for XMLTextFieldImportContext: 183*b1cdbd2cSJim Jagielski SvXMLImport& rImport, /// XML Import 184*b1cdbd2cSJim Jagielski XMLTextImportHelper& rHlp, /// text import helper 185*b1cdbd2cSJim Jagielski const sal_Char* pServiceName, /// name of SO API service 186*b1cdbd2cSJim Jagielski sal_uInt16 nPrfx, /// namespace prefix 187*b1cdbd2cSJim Jagielski const ::rtl::OUString& rLocalName, /// element name w/o prefix 188*b1cdbd2cSJim Jagielski // config variables for PrepareField behavior: 189*b1cdbd2cSJim Jagielski sal_Bool bName, /// set sName with ???-property 190*b1cdbd2cSJim Jagielski sal_Bool bFormula, /// set Formula property 191*b1cdbd2cSJim Jagielski sal_Bool bFormulaDefault, /// use content as default for formula 192*b1cdbd2cSJim Jagielski sal_Bool bDescription, /// set sDescription with Hint-property 193*b1cdbd2cSJim Jagielski sal_Bool bHelp, 194*b1cdbd2cSJim Jagielski sal_Bool bHint, 195*b1cdbd2cSJim Jagielski sal_Bool bVisible, /// set IsVisible (display attr) 196*b1cdbd2cSJim Jagielski sal_Bool bDisplayFormula, /// set ??? (display attr.) 197*b1cdbd2cSJim Jagielski sal_Bool bType, /// set value type with ???-property 198*b1cdbd2cSJim Jagielski sal_Bool bStyle, /// set data style (NumberFormat-Prop.) 199*b1cdbd2cSJim Jagielski sal_Bool bValue, /// set value with Content/Value-Prop. 200*b1cdbd2cSJim Jagielski sal_Bool bPresentation); /// set presentation from elem. content 201*b1cdbd2cSJim Jagielski 202*b1cdbd2cSJim Jagielski protected: 203*b1cdbd2cSJim Jagielski /// process attribute values 204*b1cdbd2cSJim Jagielski virtual void ProcessAttribute( sal_uInt16 nAttrToken, 205*b1cdbd2cSJim Jagielski const ::rtl::OUString& sAttrValue ); 206*b1cdbd2cSJim Jagielski 207*b1cdbd2cSJim Jagielski /// prepare XTextField for insertion into document 208*b1cdbd2cSJim Jagielski virtual void PrepareField( 209*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 210*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertySet> & xPropertySet); 211*b1cdbd2cSJim Jagielski 212*b1cdbd2cSJim Jagielski // various accessor methods: GetName()213*b1cdbd2cSJim Jagielski inline ::rtl::OUString GetName() { return sName; } IsStringValue()214*b1cdbd2cSJim Jagielski inline sal_Bool IsStringValue() { return aValueHelper.IsStringValue();} IsNameOK()215*b1cdbd2cSJim Jagielski inline sal_Bool IsNameOK() { return bNameOK; } IsFormulaOK()216*b1cdbd2cSJim Jagielski inline sal_Bool IsFormulaOK() { return bFormulaOK; } IsDescriptionOK()217*b1cdbd2cSJim Jagielski inline sal_Bool IsDescriptionOK() { return bDescriptionOK; } IsDisplayOK()218*b1cdbd2cSJim Jagielski inline sal_Bool IsDisplayOK() { return bDisplayOK; } 219*b1cdbd2cSJim Jagielski }; 220*b1cdbd2cSJim Jagielski 221*b1cdbd2cSJim Jagielski 222*b1cdbd2cSJim Jagielski 223*b1cdbd2cSJim Jagielski /** import variable get fields (<text:variable-get>) */ 224*b1cdbd2cSJim Jagielski class XMLVariableGetFieldImportContext : public XMLVarFieldImportContext 225*b1cdbd2cSJim Jagielski { 226*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertySubType; 227*b1cdbd2cSJim Jagielski 228*b1cdbd2cSJim Jagielski public: 229*b1cdbd2cSJim Jagielski 230*b1cdbd2cSJim Jagielski TYPEINFO(); 231*b1cdbd2cSJim Jagielski 232*b1cdbd2cSJim Jagielski XMLVariableGetFieldImportContext( 233*b1cdbd2cSJim Jagielski SvXMLImport& rImport, /// XML Import 234*b1cdbd2cSJim Jagielski XMLTextImportHelper& rHlp, /// Text import helper 235*b1cdbd2cSJim Jagielski sal_uInt16 nPrfx, /// namespace prefix 236*b1cdbd2cSJim Jagielski const ::rtl::OUString& rLocalName); /// element name w/o prefix 237*b1cdbd2cSJim Jagielski 238*b1cdbd2cSJim Jagielski 239*b1cdbd2cSJim Jagielski protected: 240*b1cdbd2cSJim Jagielski /// prepare XTextField for insertion into document 241*b1cdbd2cSJim Jagielski virtual void PrepareField( 242*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 243*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertySet> & xPropertySet); 244*b1cdbd2cSJim Jagielski }; 245*b1cdbd2cSJim Jagielski 246*b1cdbd2cSJim Jagielski 247*b1cdbd2cSJim Jagielski 248*b1cdbd2cSJim Jagielski /** import expression fields (<text:expression>) */ 249*b1cdbd2cSJim Jagielski class XMLExpressionFieldImportContext : public XMLVarFieldImportContext 250*b1cdbd2cSJim Jagielski { 251*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertySubType; 252*b1cdbd2cSJim Jagielski 253*b1cdbd2cSJim Jagielski public: 254*b1cdbd2cSJim Jagielski 255*b1cdbd2cSJim Jagielski TYPEINFO(); 256*b1cdbd2cSJim Jagielski 257*b1cdbd2cSJim Jagielski XMLExpressionFieldImportContext( 258*b1cdbd2cSJim Jagielski SvXMLImport& rImport, /// XML Import 259*b1cdbd2cSJim Jagielski XMLTextImportHelper& rHlp, /// Text import helper 260*b1cdbd2cSJim Jagielski sal_uInt16 nPrfx, /// namespace prefix 261*b1cdbd2cSJim Jagielski const ::rtl::OUString& sLocalName); /// element name w/o prefix 262*b1cdbd2cSJim Jagielski 263*b1cdbd2cSJim Jagielski protected: 264*b1cdbd2cSJim Jagielski virtual void PrepareField( 265*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 266*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertySet> & xPropertySet); 267*b1cdbd2cSJim Jagielski }; 268*b1cdbd2cSJim Jagielski 269*b1cdbd2cSJim Jagielski /*** import text input fields (<text:text-input>) */ 270*b1cdbd2cSJim Jagielski class XMLTextInputFieldImportContext : public XMLVarFieldImportContext 271*b1cdbd2cSJim Jagielski { 272*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyContent; 273*b1cdbd2cSJim Jagielski 274*b1cdbd2cSJim Jagielski public: 275*b1cdbd2cSJim Jagielski 276*b1cdbd2cSJim Jagielski TYPEINFO(); 277*b1cdbd2cSJim Jagielski 278*b1cdbd2cSJim Jagielski XMLTextInputFieldImportContext( 279*b1cdbd2cSJim Jagielski SvXMLImport& rImport, /// XML Import 280*b1cdbd2cSJim Jagielski XMLTextImportHelper& rHlp, /// Text import helper 281*b1cdbd2cSJim Jagielski sal_uInt16 nPrfx, /// namespace prefix 282*b1cdbd2cSJim Jagielski const ::rtl::OUString& sLocalName); /// element name w/o prefix 283*b1cdbd2cSJim Jagielski 284*b1cdbd2cSJim Jagielski protected: 285*b1cdbd2cSJim Jagielski virtual void PrepareField( 286*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 287*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertySet> & xPropertySet); 288*b1cdbd2cSJim Jagielski }; 289*b1cdbd2cSJim Jagielski 290*b1cdbd2cSJim Jagielski 291*b1cdbd2cSJim Jagielski 292*b1cdbd2cSJim Jagielski 293*b1cdbd2cSJim Jagielski 294*b1cdbd2cSJim Jagielski 295*b1cdbd2cSJim Jagielski /** 296*b1cdbd2cSJim Jagielski * uperclass for variable/user-set, var/user-input, and sequence fields 297*b1cdbd2cSJim Jagielski * inds field master of appropriate type and attaches field to it. 298*b1cdbd2cSJim Jagielski */ 299*b1cdbd2cSJim Jagielski class XMLSetVarFieldImportContext : public XMLVarFieldImportContext 300*b1cdbd2cSJim Jagielski { 301*b1cdbd2cSJim Jagielski const VarType eFieldType; 302*b1cdbd2cSJim Jagielski 303*b1cdbd2cSJim Jagielski public: 304*b1cdbd2cSJim Jagielski 305*b1cdbd2cSJim Jagielski TYPEINFO(); 306*b1cdbd2cSJim Jagielski 307*b1cdbd2cSJim Jagielski XMLSetVarFieldImportContext( 308*b1cdbd2cSJim Jagielski // for XMLTextFieldImportContext: 309*b1cdbd2cSJim Jagielski SvXMLImport& rImport, /// see XMLTextFieldImportContext 310*b1cdbd2cSJim Jagielski XMLTextImportHelper& rHlp, /// see XMLTextFieldImportContext 311*b1cdbd2cSJim Jagielski const sal_Char* pServiceName, /// see XMLTextFieldImportContext 312*b1cdbd2cSJim Jagielski sal_uInt16 nPrfx, /// see XMLTextFieldImportContext 313*b1cdbd2cSJim Jagielski const ::rtl::OUString& rLocalName, /// see XMLTextFieldImportContext 314*b1cdbd2cSJim Jagielski // for finding appropriate field master (see EndElement()) 315*b1cdbd2cSJim Jagielski VarType eVarType, /// variable type 316*b1cdbd2cSJim Jagielski // config variables: 317*b1cdbd2cSJim Jagielski sal_Bool bName, /// see XMLTextFieldImportContext 318*b1cdbd2cSJim Jagielski sal_Bool bFormula, /// see XMLTextFieldImportContext 319*b1cdbd2cSJim Jagielski sal_Bool bFormulaDefault, /// see XMLTextFieldImportContext 320*b1cdbd2cSJim Jagielski sal_Bool bDescription, /// see XMLTextFieldImportContext 321*b1cdbd2cSJim Jagielski sal_Bool bHelp, /// see XMLTextFieldImportContext 322*b1cdbd2cSJim Jagielski sal_Bool bHint, /// see XMLTextFieldImportContext 323*b1cdbd2cSJim Jagielski sal_Bool bVisible, /// see XMLTextFieldImportContext 324*b1cdbd2cSJim Jagielski sal_Bool bDisplayFormula, /// see XMLTextFieldImportContext 325*b1cdbd2cSJim Jagielski sal_Bool bType, /// see XMLTextFieldImportContext 326*b1cdbd2cSJim Jagielski sal_Bool bStyle, /// see XMLTextFieldImportContext 327*b1cdbd2cSJim Jagielski sal_Bool bValue, /// see XMLTextFieldImportContext 328*b1cdbd2cSJim Jagielski sal_Bool bPresentation); /// see XMLTextFieldImportContext 329*b1cdbd2cSJim Jagielski 330*b1cdbd2cSJim Jagielski protected: 331*b1cdbd2cSJim Jagielski 332*b1cdbd2cSJim Jagielski /// create XTextField, attach master and insert into document; 333*b1cdbd2cSJim Jagielski /// also calls PrepareTextField 334*b1cdbd2cSJim Jagielski virtual void EndElement(); 335*b1cdbd2cSJim Jagielski 336*b1cdbd2cSJim Jagielski /// find appropriate field master 337*b1cdbd2cSJim Jagielski sal_Bool FindFieldMaster( 338*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< 339*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertySet> & xMaster); 340*b1cdbd2cSJim Jagielski }; 341*b1cdbd2cSJim Jagielski 342*b1cdbd2cSJim Jagielski 343*b1cdbd2cSJim Jagielski 344*b1cdbd2cSJim Jagielski /** import variable set fields (<text:variable-set>) */ 345*b1cdbd2cSJim Jagielski class XMLVariableSetFieldImportContext : public XMLSetVarFieldImportContext 346*b1cdbd2cSJim Jagielski { 347*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertySubType; 348*b1cdbd2cSJim Jagielski 349*b1cdbd2cSJim Jagielski public: 350*b1cdbd2cSJim Jagielski 351*b1cdbd2cSJim Jagielski TYPEINFO(); 352*b1cdbd2cSJim Jagielski 353*b1cdbd2cSJim Jagielski XMLVariableSetFieldImportContext( 354*b1cdbd2cSJim Jagielski SvXMLImport& rImport, /// XML Import 355*b1cdbd2cSJim Jagielski XMLTextImportHelper& rHlp, /// Text import helper 356*b1cdbd2cSJim Jagielski sal_uInt16 nPrfx, /// namespace prefix 357*b1cdbd2cSJim Jagielski const ::rtl::OUString& rLocalName); /// element name w/o prefix 358*b1cdbd2cSJim Jagielski 359*b1cdbd2cSJim Jagielski protected: 360*b1cdbd2cSJim Jagielski /// prepare XTextField for insertion into document 361*b1cdbd2cSJim Jagielski virtual void PrepareField( 362*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 363*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertySet> & xPropertySet); 364*b1cdbd2cSJim Jagielski }; 365*b1cdbd2cSJim Jagielski 366*b1cdbd2cSJim Jagielski 367*b1cdbd2cSJim Jagielski 368*b1cdbd2cSJim Jagielski /** variable input fields (<text:variable-input>) */ 369*b1cdbd2cSJim Jagielski class XMLVariableInputFieldImportContext : public XMLSetVarFieldImportContext 370*b1cdbd2cSJim Jagielski { 371*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertySubType; 372*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyIsInput; 373*b1cdbd2cSJim Jagielski 374*b1cdbd2cSJim Jagielski public: 375*b1cdbd2cSJim Jagielski 376*b1cdbd2cSJim Jagielski TYPEINFO(); 377*b1cdbd2cSJim Jagielski 378*b1cdbd2cSJim Jagielski XMLVariableInputFieldImportContext( 379*b1cdbd2cSJim Jagielski SvXMLImport& rImport, /// XML Import 380*b1cdbd2cSJim Jagielski XMLTextImportHelper& rHlp, /// Text import helper 381*b1cdbd2cSJim Jagielski sal_uInt16 nPrfx, /// namespace prefix 382*b1cdbd2cSJim Jagielski const ::rtl::OUString& rLocalName); /// element name w/o prefix 383*b1cdbd2cSJim Jagielski 384*b1cdbd2cSJim Jagielski protected: 385*b1cdbd2cSJim Jagielski 386*b1cdbd2cSJim Jagielski /// prepare XTextField for insertion into document 387*b1cdbd2cSJim Jagielski virtual void PrepareField( 388*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 389*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertySet> & xPropertySet); 390*b1cdbd2cSJim Jagielski }; 391*b1cdbd2cSJim Jagielski 392*b1cdbd2cSJim Jagielski 393*b1cdbd2cSJim Jagielski 394*b1cdbd2cSJim Jagielski /** user fields (<text:user-field-get>) */ 395*b1cdbd2cSJim Jagielski class XMLUserFieldImportContext : public XMLSetVarFieldImportContext 396*b1cdbd2cSJim Jagielski { 397*b1cdbd2cSJim Jagielski 398*b1cdbd2cSJim Jagielski public: 399*b1cdbd2cSJim Jagielski 400*b1cdbd2cSJim Jagielski TYPEINFO(); 401*b1cdbd2cSJim Jagielski 402*b1cdbd2cSJim Jagielski XMLUserFieldImportContext( 403*b1cdbd2cSJim Jagielski SvXMLImport& rImport, /// XML Import 404*b1cdbd2cSJim Jagielski XMLTextImportHelper& rHlp, /// Text import helper 405*b1cdbd2cSJim Jagielski sal_uInt16 nPrfx, /// namespace prefix 406*b1cdbd2cSJim Jagielski const ::rtl::OUString& rLocalName); /// element name w/o prefix 407*b1cdbd2cSJim Jagielski }; 408*b1cdbd2cSJim Jagielski 409*b1cdbd2cSJim Jagielski /** user input fields (<text:user-field-input>) */ 410*b1cdbd2cSJim Jagielski class XMLUserFieldInputImportContext : public XMLVarFieldImportContext 411*b1cdbd2cSJim Jagielski { 412*b1cdbd2cSJim Jagielski 413*b1cdbd2cSJim Jagielski public: 414*b1cdbd2cSJim Jagielski 415*b1cdbd2cSJim Jagielski TYPEINFO(); 416*b1cdbd2cSJim Jagielski 417*b1cdbd2cSJim Jagielski XMLUserFieldInputImportContext( 418*b1cdbd2cSJim Jagielski SvXMLImport& rImport, /// XML Import 419*b1cdbd2cSJim Jagielski XMLTextImportHelper& rHlp, /// Text import helper 420*b1cdbd2cSJim Jagielski sal_uInt16 nPrfx, /// namespace prefix 421*b1cdbd2cSJim Jagielski const ::rtl::OUString& rLocalName); /// element name w/o prefix 422*b1cdbd2cSJim Jagielski 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 430*b1cdbd2cSJim Jagielski /** sequence fields (<text:sequence>) */ 431*b1cdbd2cSJim Jagielski class XMLSequenceFieldImportContext : public XMLSetVarFieldImportContext 432*b1cdbd2cSJim Jagielski { 433*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyFormula; 434*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyNumberFormat; 435*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertySequenceValue; 436*b1cdbd2cSJim Jagielski ::rtl::OUString sFormula; 437*b1cdbd2cSJim Jagielski ::rtl::OUString sNumFormat; 438*b1cdbd2cSJim Jagielski ::rtl::OUString sNumFormatSync; 439*b1cdbd2cSJim Jagielski ::rtl::OUString sRefName; 440*b1cdbd2cSJim Jagielski 441*b1cdbd2cSJim Jagielski sal_Bool bRefNameOK; 442*b1cdbd2cSJim Jagielski 443*b1cdbd2cSJim Jagielski public: 444*b1cdbd2cSJim Jagielski 445*b1cdbd2cSJim Jagielski TYPEINFO(); 446*b1cdbd2cSJim Jagielski 447*b1cdbd2cSJim Jagielski XMLSequenceFieldImportContext( 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& rLocalName); /// element name w/o prefix 452*b1cdbd2cSJim Jagielski 453*b1cdbd2cSJim Jagielski protected: 454*b1cdbd2cSJim Jagielski 455*b1cdbd2cSJim Jagielski /// process attribute values 456*b1cdbd2cSJim Jagielski virtual void ProcessAttribute( sal_uInt16 nAttrToken, 457*b1cdbd2cSJim Jagielski const ::rtl::OUString& sAttrValue ); 458*b1cdbd2cSJim Jagielski 459*b1cdbd2cSJim Jagielski /// prepare XTextField for insertion into document 460*b1cdbd2cSJim Jagielski virtual void PrepareField( 461*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 462*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertySet> & xPropertySet); 463*b1cdbd2cSJim Jagielski }; 464*b1cdbd2cSJim Jagielski 465*b1cdbd2cSJim Jagielski 466*b1cdbd2cSJim Jagielski 467*b1cdbd2cSJim Jagielski 468*b1cdbd2cSJim Jagielski 469*b1cdbd2cSJim Jagielski 470*b1cdbd2cSJim Jagielski /** 471*b1cdbd2cSJim Jagielski * variable declaration container for all variable fields 472*b1cdbd2cSJim Jagielski * (variable-decls, user-field-decls, sequence-decls) 473*b1cdbd2cSJim Jagielski */ 474*b1cdbd2cSJim Jagielski class XMLVariableDeclsImportContext : public SvXMLImportContext 475*b1cdbd2cSJim Jagielski { 476*b1cdbd2cSJim Jagielski enum VarType eVarDeclsContextType; 477*b1cdbd2cSJim Jagielski XMLTextImportHelper& rImportHelper; 478*b1cdbd2cSJim Jagielski 479*b1cdbd2cSJim Jagielski public: 480*b1cdbd2cSJim Jagielski 481*b1cdbd2cSJim Jagielski TYPEINFO(); 482*b1cdbd2cSJim Jagielski 483*b1cdbd2cSJim Jagielski XMLVariableDeclsImportContext( 484*b1cdbd2cSJim Jagielski SvXMLImport& rImport, /// XML Import 485*b1cdbd2cSJim Jagielski XMLTextImportHelper& rHlp, /// text import helper 486*b1cdbd2cSJim Jagielski sal_uInt16 nPrfx, /// namespace prefix 487*b1cdbd2cSJim Jagielski const ::rtl::OUString& rLocalName, /// element name w/o prefix 488*b1cdbd2cSJim Jagielski enum VarType eVarType); /// variable type 489*b1cdbd2cSJim Jagielski 490*b1cdbd2cSJim Jagielski virtual SvXMLImportContext *CreateChildContext( 491*b1cdbd2cSJim Jagielski sal_uInt16 nPrefix, 492*b1cdbd2cSJim Jagielski const ::rtl::OUString& rLocalName, 493*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 494*b1cdbd2cSJim Jagielski ::com::sun::star::xml::sax::XAttributeList> & xAttrList ); 495*b1cdbd2cSJim Jagielski }; 496*b1cdbd2cSJim Jagielski 497*b1cdbd2cSJim Jagielski /** 498*b1cdbd2cSJim Jagielski * variable field declarations 499*b1cdbd2cSJim Jagielski * (variable-decl, user-field-decl, sequence-decl) 500*b1cdbd2cSJim Jagielski */ 501*b1cdbd2cSJim Jagielski class XMLVariableDeclImportContext : public SvXMLImportContext 502*b1cdbd2cSJim Jagielski { 503*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyName; 504*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertySubType; 505*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyNumberingLevel; 506*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyNumberingSeparator; 507*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyIsExpression; 508*b1cdbd2cSJim Jagielski 509*b1cdbd2cSJim Jagielski ::rtl::OUString sName; 510*b1cdbd2cSJim Jagielski XMLValueImportHelper aValueHelper; 511*b1cdbd2cSJim Jagielski sal_Int8 nNumLevel; 512*b1cdbd2cSJim Jagielski sal_Unicode cSeparationChar; 513*b1cdbd2cSJim Jagielski 514*b1cdbd2cSJim Jagielski public: 515*b1cdbd2cSJim Jagielski 516*b1cdbd2cSJim Jagielski TYPEINFO(); 517*b1cdbd2cSJim Jagielski 518*b1cdbd2cSJim Jagielski XMLVariableDeclImportContext( 519*b1cdbd2cSJim Jagielski SvXMLImport& rImport, /// XML Import 520*b1cdbd2cSJim Jagielski XMLTextImportHelper& rHlp, /// text import helper 521*b1cdbd2cSJim Jagielski sal_uInt16 nPrfx, /// namespace prefix 522*b1cdbd2cSJim Jagielski const ::rtl::OUString& rLocalName, /// element name w/o prefix 523*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< /// list of element attributes 524*b1cdbd2cSJim Jagielski ::com::sun::star::xml::sax::XAttributeList> & xAttrList, 525*b1cdbd2cSJim Jagielski enum VarType eVarType); /// variable type 526*b1cdbd2cSJim Jagielski 527*b1cdbd2cSJim Jagielski /// get field master for name and rename if appropriate 528*b1cdbd2cSJim Jagielski static sal_Bool FindFieldMaster(::com::sun::star::uno::Reference< 529*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertySet> & xMaster, 530*b1cdbd2cSJim Jagielski SvXMLImport& rImport, 531*b1cdbd2cSJim Jagielski XMLTextImportHelper& rHelper, 532*b1cdbd2cSJim Jagielski const ::rtl::OUString& sVarName, 533*b1cdbd2cSJim Jagielski enum VarType eVarType); 534*b1cdbd2cSJim Jagielski }; 535*b1cdbd2cSJim Jagielski 536*b1cdbd2cSJim Jagielski 537*b1cdbd2cSJim Jagielski 538*b1cdbd2cSJim Jagielski /** import table formula fields (deprecated; for Writer 2.0 compatibility) */ 539*b1cdbd2cSJim Jagielski class XMLTableFormulaImportContext : public XMLTextFieldImportContext 540*b1cdbd2cSJim Jagielski { 541*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyNumberFormat; 542*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyContent; 543*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyIsShowFormula; 544*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyCurrentPresentation; 545*b1cdbd2cSJim Jagielski 546*b1cdbd2cSJim Jagielski XMLValueImportHelper aValueHelper; 547*b1cdbd2cSJim Jagielski 548*b1cdbd2cSJim Jagielski ::rtl::OUString sFormula; 549*b1cdbd2cSJim Jagielski sal_Bool bFormulaOK; 550*b1cdbd2cSJim Jagielski 551*b1cdbd2cSJim Jagielski sal_Bool bIsShowFormula; 552*b1cdbd2cSJim Jagielski 553*b1cdbd2cSJim Jagielski public: 554*b1cdbd2cSJim Jagielski 555*b1cdbd2cSJim Jagielski TYPEINFO(); 556*b1cdbd2cSJim Jagielski 557*b1cdbd2cSJim Jagielski XMLTableFormulaImportContext( 558*b1cdbd2cSJim Jagielski SvXMLImport& rImport, /// XML Import 559*b1cdbd2cSJim Jagielski XMLTextImportHelper& rHlp, /// text import helper 560*b1cdbd2cSJim Jagielski sal_uInt16 nPrfx, /// namespace prefix 561*b1cdbd2cSJim Jagielski const ::rtl::OUString& rLocalName); /// element name w/o prefix 562*b1cdbd2cSJim Jagielski virtual ~XMLTableFormulaImportContext(); 563*b1cdbd2cSJim Jagielski 564*b1cdbd2cSJim Jagielski protected: 565*b1cdbd2cSJim Jagielski 566*b1cdbd2cSJim Jagielski /// process attribute values 567*b1cdbd2cSJim Jagielski virtual void ProcessAttribute( sal_uInt16 nAttrToken, 568*b1cdbd2cSJim Jagielski const ::rtl::OUString& sAttrValue ); 569*b1cdbd2cSJim Jagielski 570*b1cdbd2cSJim Jagielski /// prepare XTextField for insertion into document 571*b1cdbd2cSJim Jagielski virtual void PrepareField( 572*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 573*b1cdbd2cSJim Jagielski ::com::sun::star::beans::XPropertySet> & xPropertySet); 574*b1cdbd2cSJim Jagielski }; 575*b1cdbd2cSJim Jagielski 576*b1cdbd2cSJim Jagielski 577*b1cdbd2cSJim Jagielski 578*b1cdbd2cSJim Jagielski /** import database display fields (<text:database-display>) */ 579*b1cdbd2cSJim Jagielski class XMLDatabaseDisplayImportContext : public XMLDatabaseFieldImportContext 580*b1cdbd2cSJim Jagielski { 581*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyColumnName; 582*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyDatabaseFormat; 583*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyCurrentPresentation; 584*b1cdbd2cSJim Jagielski const ::rtl::OUString sPropertyIsVisible; 585*b1cdbd2cSJim Jagielski 586*b1cdbd2cSJim Jagielski XMLValueImportHelper aValueHelper; 587*b1cdbd2cSJim Jagielski 588*b1cdbd2cSJim Jagielski ::rtl::OUString sColumnName; 589*b1cdbd2cSJim Jagielski sal_Bool bColumnOK; 590*b1cdbd2cSJim Jagielski 591*b1cdbd2cSJim Jagielski sal_Bool bDisplay; 592*b1cdbd2cSJim Jagielski sal_Bool bDisplayOK; 593*b1cdbd2cSJim Jagielski 594*b1cdbd2cSJim Jagielski public: 595*b1cdbd2cSJim Jagielski 596*b1cdbd2cSJim Jagielski TYPEINFO(); 597*b1cdbd2cSJim Jagielski 598*b1cdbd2cSJim Jagielski XMLDatabaseDisplayImportContext( 599*b1cdbd2cSJim Jagielski SvXMLImport& rImport, /// XML Import 600*b1cdbd2cSJim Jagielski XMLTextImportHelper& rHlp, /// text import helper 601*b1cdbd2cSJim Jagielski sal_uInt16 nPrfx, /// namespace prefix 602*b1cdbd2cSJim Jagielski const ::rtl::OUString& rLocalName); /// element name w/o prefix 603*b1cdbd2cSJim Jagielski 604*b1cdbd2cSJim Jagielski protected: 605*b1cdbd2cSJim Jagielski 606*b1cdbd2cSJim Jagielski /// process attribute values 607*b1cdbd2cSJim Jagielski virtual void ProcessAttribute( sal_uInt16 nAttrToken, 608*b1cdbd2cSJim Jagielski const ::rtl::OUString& sAttrValue ); 609*b1cdbd2cSJim Jagielski 610*b1cdbd2cSJim Jagielski /// create, prepare and insert database field master and database field 611*b1cdbd2cSJim Jagielski virtual void EndElement(); 612*b1cdbd2cSJim Jagielski }; 613*b1cdbd2cSJim Jagielski 614*b1cdbd2cSJim Jagielski #endif 615