| OLD | NEW | 
|     1 // Copyright 2014 PDFium Authors. All rights reserved. |     1 // Copyright 2014 PDFium Authors. All rights reserved. | 
|     2 // Use of this source code is governed by a BSD-style license that can be |     2 // Use of this source code is governed by a BSD-style license that can be | 
|     3 // found in the LICENSE file. |     3 // found in the LICENSE file. | 
|     4  |     4  | 
|     5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |     5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 
|     6  |     6  | 
|     7 #include "xfa/src/foxitlib.h" |     7 #include "xfa/src/foxitlib.h" | 
|     8 #include "xfa/src/fxfa/src/common/xfa_docdata.h" |     8 #include "xfa/src/fxfa/src/common/xfa_docdata.h" | 
|     9 #include "xfa/src/fxfa/src/common/xfa_doclayout.h" |     9 #include "xfa/src/fxfa/src/common/xfa_doclayout.h" | 
|    10 #include "xfa/src/fxfa/src/common/xfa_document.h" |    10 #include "xfa/src/fxfa/src/common/xfa_document.h" | 
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   113   CXFA_Node* pClone = pFactory->CreateNode(m_ePacket, m_eNodeClass); |   113   CXFA_Node* pClone = pFactory->CreateNode(m_ePacket, m_eNodeClass); | 
|   114   if (!pClone) { |   114   if (!pClone) { | 
|   115     return NULL; |   115     return NULL; | 
|   116   } |   116   } | 
|   117   MergeAllData(pClone); |   117   MergeAllData(pClone); | 
|   118   pClone->UpdateNameHash(); |   118   pClone->UpdateNameHash(); | 
|   119   if (IsNeedSavingXMLNode()) { |   119   if (IsNeedSavingXMLNode()) { | 
|   120     IFDE_XMLNode* pCloneXML = NULL; |   120     IFDE_XMLNode* pCloneXML = NULL; | 
|   121     if (IsAttributeInXML()) { |   121     if (IsAttributeInXML()) { | 
|   122       CFX_WideString wsName; |   122       CFX_WideString wsName; | 
|   123       this->GetAttribute(XFA_ATTRIBUTE_Name, wsName, FALSE); |   123       GetAttribute(XFA_ATTRIBUTE_Name, wsName, FALSE); | 
|   124       IFDE_XMLElement* pCloneXMLElement = IFDE_XMLElement::Create(wsName); |   124       IFDE_XMLElement* pCloneXMLElement = IFDE_XMLElement::Create(wsName); | 
|   125       CFX_WideStringC wsValue = this->GetCData(XFA_ATTRIBUTE_Value); |   125       CFX_WideStringC wsValue = GetCData(XFA_ATTRIBUTE_Value); | 
|   126       if (!wsValue.IsEmpty()) { |   126       if (!wsValue.IsEmpty()) { | 
|   127         pCloneXMLElement->SetTextData(wsValue); |   127         pCloneXMLElement->SetTextData(wsValue); | 
|   128       } |   128       } | 
|   129       pCloneXML = pCloneXMLElement; |   129       pCloneXML = pCloneXMLElement; | 
|   130       pCloneXMLElement = NULL; |   130       pCloneXMLElement = NULL; | 
|   131       pClone->SetEnum(XFA_ATTRIBUTE_Contains, XFA_ATTRIBUTEENUM_Unknown); |   131       pClone->SetEnum(XFA_ATTRIBUTE_Contains, XFA_ATTRIBUTEENUM_Unknown); | 
|   132     } else { |   132     } else { | 
|   133       pCloneXML = m_pXMLNode->Clone(FALSE); |   133       pCloneXML = m_pXMLNode->Clone(FALSE); | 
|   134     } |   134     } | 
|   135     pClone->SetXMLMappingNode(pCloneXML); |   135     pClone->SetXMLMappingNode(pCloneXML); | 
| (...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   417   } |   417   } | 
|   418   XFA_ELEMENT classID = GetClassID(); |   418   XFA_ELEMENT classID = GetClassID(); | 
|   419   if (classID == XFA_ELEMENT_ExclGroup) { |   419   if (classID == XFA_ELEMENT_ExclGroup) { | 
|   420     return NULL; |   420     return NULL; | 
|   421   } |   421   } | 
|   422   CXFA_Node* pParentNode = GetNodeItem(XFA_NODEITEM_Parent); |   422   CXFA_Node* pParentNode = GetNodeItem(XFA_NODEITEM_Parent); | 
|   423   if (pParentNode && pParentNode->GetClassID() == XFA_ELEMENT_ExclGroup) { |   423   if (pParentNode && pParentNode->GetClassID() == XFA_ELEMENT_ExclGroup) { | 
|   424     return NULL; |   424     return NULL; | 
|   425   } |   425   } | 
|   426   if (classID == XFA_ELEMENT_Field) { |   426   if (classID == XFA_ELEMENT_Field) { | 
|   427     CXFA_WidgetData* pFieldWidgetData = this->GetWidgetData(); |   427     CXFA_WidgetData* pFieldWidgetData = GetWidgetData(); | 
|   428     if (pFieldWidgetData && |   428     if (pFieldWidgetData && | 
|   429         pFieldWidgetData->GetChoiceListOpen() == |   429         pFieldWidgetData->GetChoiceListOpen() == | 
|   430             XFA_ATTRIBUTEENUM_MultiSelect) { |   430             XFA_ATTRIBUTEENUM_MultiSelect) { | 
|   431       return NULL; |   431       return NULL; | 
|   432     } else { |   432     } else { | 
|   433       CFX_WideString wsPicture; |   433       CFX_WideString wsPicture; | 
|   434       if (pFieldWidgetData) { |   434       if (pFieldWidgetData) { | 
|   435         pFieldWidgetData->GetPictureContent(wsPicture, |   435         pFieldWidgetData->GetPictureContent(wsPicture, | 
|   436                                             XFA_VALUEPICTURE_DataBind); |   436                                             XFA_VALUEPICTURE_DataBind); | 
|   437       } |   437       } | 
|   438       if (!wsPicture.IsEmpty()) { |   438       if (!wsPicture.IsEmpty()) { | 
|   439         return pFieldWidgetData; |   439         return pFieldWidgetData; | 
|   440       } |   440       } | 
|   441       CXFA_Node* pDataNode = this->GetBindData(); |   441       CXFA_Node* pDataNode = GetBindData(); | 
|   442       if (!pDataNode) { |   442       if (!pDataNode) { | 
|   443         return NULL; |   443         return NULL; | 
|   444       } |   444       } | 
|   445       pFieldWidgetData = NULL; |   445       pFieldWidgetData = NULL; | 
|   446       CXFA_NodeArray formNodes; |   446       CXFA_NodeArray formNodes; | 
|   447       pDataNode->GetBindItems(formNodes); |   447       pDataNode->GetBindItems(formNodes); | 
|   448       for (int32_t i = 0; i < formNodes.GetSize(); i++) { |   448       for (int32_t i = 0; i < formNodes.GetSize(); i++) { | 
|   449         CXFA_Node* pFormNode = formNodes.GetAt(i); |   449         CXFA_Node* pFormNode = formNodes.GetAt(i); | 
|   450         if (!pFormNode || pFormNode->HasFlag(XFA_NODEFLAG_HasRemoved)) { |   450         if (!pFormNode || pFormNode->HasFlag(XFA_NODEFLAG_HasRemoved)) { | 
|   451           continue; |   451           continue; | 
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   561         case XFA_ATTRIBUTEENUM_Tb: |   561         case XFA_ATTRIBUTEENUM_Tb: | 
|   562         case XFA_ATTRIBUTEENUM_Table: |   562         case XFA_ATTRIBUTEENUM_Table: | 
|   563         case XFA_ATTRIBUTEENUM_Lr_tb: |   563         case XFA_ATTRIBUTEENUM_Lr_tb: | 
|   564         case XFA_ATTRIBUTEENUM_Rl_tb: |   564         case XFA_ATTRIBUTEENUM_Rl_tb: | 
|   565           return XFA_ATTRIBUTEENUM_None; |   565           return XFA_ATTRIBUTEENUM_None; | 
|   566         default: |   566         default: | 
|   567           break; |   567           break; | 
|   568       } |   568       } | 
|   569       break; |   569       break; | 
|   570     case XFA_ELEMENT_Field: { |   570     case XFA_ELEMENT_Field: { | 
|   571       CXFA_Node* pParentNode = this->GetNodeItem(XFA_NODEITEM_Parent); |   571       CXFA_Node* pParentNode = GetNodeItem(XFA_NODEITEM_Parent); | 
|   572       if (!pParentNode || pParentNode->GetClassID() == XFA_ELEMENT_PageArea) { |   572       if (!pParentNode || pParentNode->GetClassID() == XFA_ELEMENT_PageArea) { | 
|   573         return XFA_ATTRIBUTEENUM_ContentArea; |   573         return XFA_ATTRIBUTEENUM_ContentArea; | 
|   574       } |   574       } | 
|   575       if (pParentNode->GetIntact() == XFA_ATTRIBUTEENUM_None) { |   575       if (pParentNode->GetIntact() == XFA_ATTRIBUTEENUM_None) { | 
|   576         XFA_ATTRIBUTEENUM eParLayout = |   576         XFA_ATTRIBUTEENUM eParLayout = | 
|   577             pParentNode->GetEnum(XFA_ATTRIBUTE_Layout); |   577             pParentNode->GetEnum(XFA_ATTRIBUTE_Layout); | 
|   578         if (eParLayout == XFA_ATTRIBUTEENUM_Position || |   578         if (eParLayout == XFA_ATTRIBUTEENUM_Position || | 
|   579             eParLayout == XFA_ATTRIBUTEENUM_Row || |   579             eParLayout == XFA_ATTRIBUTEENUM_Row || | 
|   580             eParLayout == XFA_ATTRIBUTEENUM_Table) { |   580             eParLayout == XFA_ATTRIBUTEENUM_Table) { | 
|   581           return XFA_ATTRIBUTEENUM_None; |   581           return XFA_ATTRIBUTEENUM_None; | 
|   582         } |   582         } | 
|   583         XFA_VERSION version = m_pDocument->GetCurVersionMode(); |   583         XFA_VERSION version = m_pDocument->GetCurVersionMode(); | 
|   584         if (eParLayout == XFA_ATTRIBUTEENUM_Tb && version < XFA_VERSION_208) { |   584         if (eParLayout == XFA_ATTRIBUTEENUM_Tb && version < XFA_VERSION_208) { | 
|   585           CXFA_Measurement measureH; |   585           CXFA_Measurement measureH; | 
|   586           if (this->TryMeasure(XFA_ATTRIBUTE_H, measureH, FALSE)) { |   586           if (TryMeasure(XFA_ATTRIBUTE_H, measureH, FALSE)) { | 
|   587             return XFA_ATTRIBUTEENUM_ContentArea; |   587             return XFA_ATTRIBUTEENUM_ContentArea; | 
|   588           } |   588           } | 
|   589         } |   589         } | 
|   590         return XFA_ATTRIBUTEENUM_None; |   590         return XFA_ATTRIBUTEENUM_None; | 
|   591       } |   591       } | 
|   592       return XFA_ATTRIBUTEENUM_ContentArea; |   592       return XFA_ATTRIBUTEENUM_ContentArea; | 
|   593     } |   593     } | 
|   594     case XFA_ELEMENT_Draw: |   594     case XFA_ELEMENT_Draw: | 
|   595       return XFA_ATTRIBUTEENUM_ContentArea; |   595       return XFA_ATTRIBUTEENUM_ContentArea; | 
|   596     default: |   596     default: | 
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   745   } |   745   } | 
|   746 } |   746 } | 
|   747 void CXFA_Node::Script_TreeClass_ClassAll(FXJSE_HVALUE hValue, |   747 void CXFA_Node::Script_TreeClass_ClassAll(FXJSE_HVALUE hValue, | 
|   748                                           FX_BOOL bSetting, |   748                                           FX_BOOL bSetting, | 
|   749                                           XFA_ATTRIBUTE eAttribute) { |   749                                           XFA_ATTRIBUTE eAttribute) { | 
|   750   if (bSetting) { |   750   if (bSetting) { | 
|   751     ThrowScriptErrorMessage(XFA_IDS_INVAlID_PROP_SET); |   751     ThrowScriptErrorMessage(XFA_IDS_INVAlID_PROP_SET); | 
|   752   } else { |   752   } else { | 
|   753     FX_DWORD dwFlag = XFA_RESOLVENODE_Siblings | XFA_RESOLVENODE_ALL; |   753     FX_DWORD dwFlag = XFA_RESOLVENODE_Siblings | XFA_RESOLVENODE_ALL; | 
|   754     CFX_WideStringC wsName; |   754     CFX_WideStringC wsName; | 
|   755     this->GetClassName(wsName); |   755     GetClassName(wsName); | 
|   756     CFX_WideString wsExpression = FX_WSTRC(L"#") + wsName + FX_WSTRC(L"[*]"); |   756     CFX_WideString wsExpression = FX_WSTRC(L"#") + wsName + FX_WSTRC(L"[*]"); | 
|   757     Script_Som_ResolveNodeList(hValue, wsExpression, dwFlag); |   757     Script_Som_ResolveNodeList(hValue, wsExpression, dwFlag); | 
|   758   } |   758   } | 
|   759 } |   759 } | 
|   760 void CXFA_Node::Script_TreeClass_Parent(FXJSE_HVALUE hValue, |   760 void CXFA_Node::Script_TreeClass_Parent(FXJSE_HVALUE hValue, | 
|   761                                         FX_BOOL bSetting, |   761                                         FX_BOOL bSetting, | 
|   762                                         XFA_ATTRIBUTE eAttribute) { |   762                                         XFA_ATTRIBUTE eAttribute) { | 
|   763   if (bSetting) { |   763   if (bSetting) { | 
|   764     ThrowScriptErrorMessage(XFA_IDS_INVAlID_PROP_SET); |   764     ThrowScriptErrorMessage(XFA_IDS_INVAlID_PROP_SET); | 
|   765   } else { |   765   } else { | 
|   766     CXFA_Node* pParent = this->GetNodeItem(XFA_NODEITEM_Parent); |   766     CXFA_Node* pParent = GetNodeItem(XFA_NODEITEM_Parent); | 
|   767     if (pParent) { |   767     if (pParent) { | 
|   768       FXJSE_Value_Set( |   768       FXJSE_Value_Set( | 
|   769           hValue, m_pDocument->GetScriptContext()->GetJSValueFromMap(pParent)); |   769           hValue, m_pDocument->GetScriptContext()->GetJSValueFromMap(pParent)); | 
|   770     } else { |   770     } else { | 
|   771       FXJSE_Value_SetNull(hValue); |   771       FXJSE_Value_SetNull(hValue); | 
|   772     } |   772     } | 
|   773   } |   773   } | 
|   774 } |   774 } | 
|   775 void CXFA_Node::Script_TreeClass_Index(FXJSE_HVALUE hValue, |   775 void CXFA_Node::Script_TreeClass_Index(FXJSE_HVALUE hValue, | 
|   776                                        FX_BOOL bSetting, |   776                                        FX_BOOL bSetting, | 
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   835   } |   835   } | 
|   836 } |   836 } | 
|   837 void CXFA_Node::Script_NodeClass_Clone(CFXJSE_Arguments* pArguments) { |   837 void CXFA_Node::Script_NodeClass_Clone(CFXJSE_Arguments* pArguments) { | 
|   838   int32_t iLength = pArguments->GetLength(); |   838   int32_t iLength = pArguments->GetLength(); | 
|   839   if (iLength != 1) { |   839   if (iLength != 1) { | 
|   840     ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"clone"); |   840     ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"clone"); | 
|   841     return; |   841     return; | 
|   842   } |   842   } | 
|   843   FX_BOOL bClone = TRUE; |   843   FX_BOOL bClone = TRUE; | 
|   844   bClone = pArguments->GetInt32(0) == 0 ? FALSE : TRUE; |   844   bClone = pArguments->GetInt32(0) == 0 ? FALSE : TRUE; | 
|   845   CXFA_Node* pCloneNode = this->Clone(bClone); |   845   CXFA_Node* pCloneNode = Clone(bClone); | 
|   846   FXJSE_Value_Set( |   846   FXJSE_Value_Set( | 
|   847       pArguments->GetReturnValue(), |   847       pArguments->GetReturnValue(), | 
|   848       m_pDocument->GetScriptContext()->GetJSValueFromMap(pCloneNode)); |   848       m_pDocument->GetScriptContext()->GetJSValueFromMap(pCloneNode)); | 
|   849 } |   849 } | 
|   850 void CXFA_Node::Script_NodeClass_GetAttribute(CFXJSE_Arguments* pArguments) { |   850 void CXFA_Node::Script_NodeClass_GetAttribute(CFXJSE_Arguments* pArguments) { | 
|   851   int32_t iLength = pArguments->GetLength(); |   851   int32_t iLength = pArguments->GetLength(); | 
|   852   if (iLength != 1) { |   852   if (iLength != 1) { | 
|   853     ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |   853     ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 
|   854                             L"getAttribute"); |   854                             L"getAttribute"); | 
|   855     return; |   855     return; | 
|   856   } |   856   } | 
|   857   CFX_WideString wsExpression; |   857   CFX_WideString wsExpression; | 
|   858   CFX_ByteString bsExpression = pArguments->GetUTF8String(0); |   858   CFX_ByteString bsExpression = pArguments->GetUTF8String(0); | 
|   859   wsExpression = |   859   wsExpression = | 
|   860       CFX_WideString::FromUTF8(bsExpression, bsExpression.GetLength()); |   860       CFX_WideString::FromUTF8(bsExpression, bsExpression.GetLength()); | 
|   861   CFX_WideString wsValue; |   861   CFX_WideString wsValue; | 
|   862   this->GetAttribute(wsExpression, wsValue); |   862   GetAttribute(wsExpression, wsValue); | 
|   863   FXJSE_HVALUE hValue = pArguments->GetReturnValue(); |   863   FXJSE_HVALUE hValue = pArguments->GetReturnValue(); | 
|   864   if (hValue) { |   864   if (hValue) { | 
|   865     FXJSE_Value_SetUTF8String(hValue, FX_UTF8Encode(wsValue)); |   865     FXJSE_Value_SetUTF8String(hValue, FX_UTF8Encode(wsValue)); | 
|   866   } |   866   } | 
|   867 } |   867 } | 
|   868 void CXFA_Node::Script_NodeClass_GetElement(CFXJSE_Arguments* pArguments) { |   868 void CXFA_Node::Script_NodeClass_GetElement(CFXJSE_Arguments* pArguments) { | 
|   869   int32_t iLength = pArguments->GetLength(); |   869   int32_t iLength = pArguments->GetLength(); | 
|   870   if (iLength < 1 || iLength > 2) { |   870   if (iLength < 1 || iLength > 2) { | 
|   871     ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"getElement"); |   871     ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"getElement"); | 
|   872     return; |   872     return; | 
|   873   } |   873   } | 
|   874   CFX_WideString wsExpression; |   874   CFX_WideString wsExpression; | 
|   875   int32_t iValue = 0; |   875   int32_t iValue = 0; | 
|   876   if (iLength >= 1) { |   876   if (iLength >= 1) { | 
|   877     CFX_ByteString bsExpression = pArguments->GetUTF8String(0); |   877     CFX_ByteString bsExpression = pArguments->GetUTF8String(0); | 
|   878     wsExpression = |   878     wsExpression = | 
|   879         CFX_WideString::FromUTF8(bsExpression, bsExpression.GetLength()); |   879         CFX_WideString::FromUTF8(bsExpression, bsExpression.GetLength()); | 
|   880   } |   880   } | 
|   881   if (iLength >= 2) { |   881   if (iLength >= 2) { | 
|   882     iValue = pArguments->GetInt32(1); |   882     iValue = pArguments->GetInt32(1); | 
|   883   } |   883   } | 
|   884   const XFA_ELEMENTINFO* pElementInfo = XFA_GetElementByName(wsExpression); |   884   const XFA_ELEMENTINFO* pElementInfo = XFA_GetElementByName(wsExpression); | 
|   885   CXFA_Node* pNode = this->GetProperty(iValue, pElementInfo->eName); |   885   CXFA_Node* pNode = GetProperty(iValue, pElementInfo->eName); | 
|   886   FXJSE_Value_Set(pArguments->GetReturnValue(), |   886   FXJSE_Value_Set(pArguments->GetReturnValue(), | 
|   887                   m_pDocument->GetScriptContext()->GetJSValueFromMap(pNode)); |   887                   m_pDocument->GetScriptContext()->GetJSValueFromMap(pNode)); | 
|   888 } |   888 } | 
|   889 void CXFA_Node::Script_NodeClass_IsPropertySpecified( |   889 void CXFA_Node::Script_NodeClass_IsPropertySpecified( | 
|   890     CFXJSE_Arguments* pArguments) { |   890     CFXJSE_Arguments* pArguments) { | 
|   891   int32_t iLength = pArguments->GetLength(); |   891   int32_t iLength = pArguments->GetLength(); | 
|   892   if (iLength < 1 || iLength > 3) { |   892   if (iLength < 1 || iLength > 3) { | 
|   893     ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |   893     ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 
|   894                             L"isPropertySpecified"); |   894                             L"isPropertySpecified"); | 
|   895     return; |   895     return; | 
| (...skipping 10 matching lines...) Expand all  Loading... | 
|   906     bParent = pArguments->GetInt32(1) == 0 ? FALSE : TRUE; |   906     bParent = pArguments->GetInt32(1) == 0 ? FALSE : TRUE; | 
|   907   } |   907   } | 
|   908   if (iLength >= 3) { |   908   if (iLength >= 3) { | 
|   909     iIndex = pArguments->GetInt32(2); |   909     iIndex = pArguments->GetInt32(2); | 
|   910   } |   910   } | 
|   911   FX_BOOL bHas = FALSE; |   911   FX_BOOL bHas = FALSE; | 
|   912   const XFA_ATTRIBUTEINFO* pAttributeInfo = |   912   const XFA_ATTRIBUTEINFO* pAttributeInfo = | 
|   913       XFA_GetAttributeByName(wsExpression); |   913       XFA_GetAttributeByName(wsExpression); | 
|   914   CFX_WideString wsValue; |   914   CFX_WideString wsValue; | 
|   915   if (pAttributeInfo) { |   915   if (pAttributeInfo) { | 
|   916     bHas = this->HasAttribute(pAttributeInfo->eName); |   916     bHas = HasAttribute(pAttributeInfo->eName); | 
|   917   } |   917   } | 
|   918   if (!bHas) { |   918   if (!bHas) { | 
|   919     const XFA_ELEMENTINFO* pElementInfo = XFA_GetElementByName(wsExpression); |   919     const XFA_ELEMENTINFO* pElementInfo = XFA_GetElementByName(wsExpression); | 
|   920     bHas = (this->GetProperty(iIndex, pElementInfo->eName) != NULL); |   920     bHas = (GetProperty(iIndex, pElementInfo->eName) != NULL); | 
|   921   } |   921   } | 
|   922   FXJSE_HVALUE hValue = pArguments->GetReturnValue(); |   922   FXJSE_HVALUE hValue = pArguments->GetReturnValue(); | 
|   923   if (hValue) { |   923   if (hValue) { | 
|   924     FXJSE_Value_SetBoolean(hValue, bHas); |   924     FXJSE_Value_SetBoolean(hValue, bHas); | 
|   925   } |   925   } | 
|   926 } |   926 } | 
|   927 void CXFA_Node::Script_NodeClass_LoadXML(CFXJSE_Arguments* pArguments) { |   927 void CXFA_Node::Script_NodeClass_LoadXML(CFXJSE_Arguments* pArguments) { | 
|   928   int32_t iLength = pArguments->GetLength(); |   928   int32_t iLength = pArguments->GetLength(); | 
|   929   if (iLength < 1 || iLength > 3) { |   929   if (iLength < 1 || iLength > 3) { | 
|   930     ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"loadXML"); |   930     ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"loadXML"); | 
| (...skipping 24 matching lines...) Expand all  Loading... | 
|   955   int32_t iParserStatus = pParser->ParseXMLData(wsExpression, pXMLNode, NULL); |   955   int32_t iParserStatus = pParser->ParseXMLData(wsExpression, pXMLNode, NULL); | 
|   956   if (iParserStatus != XFA_PARSESTATUS_Done || !pXMLNode) { |   956   if (iParserStatus != XFA_PARSESTATUS_Done || !pXMLNode) { | 
|   957     pParser->Release(); |   957     pParser->Release(); | 
|   958     pParser = NULL; |   958     pParser = NULL; | 
|   959     return; |   959     return; | 
|   960   } |   960   } | 
|   961   if (bIgnoreRoot && (pXMLNode->GetType() != FDE_XMLNODE_Element || |   961   if (bIgnoreRoot && (pXMLNode->GetType() != FDE_XMLNODE_Element || | 
|   962                       XFA_RecognizeRichText((IFDE_XMLElement*)pXMLNode))) { |   962                       XFA_RecognizeRichText((IFDE_XMLElement*)pXMLNode))) { | 
|   963     bIgnoreRoot = FALSE; |   963     bIgnoreRoot = FALSE; | 
|   964   } |   964   } | 
|   965   CXFA_Node* pFakeRoot = this->Clone(FALSE); |   965   CXFA_Node* pFakeRoot = Clone(FALSE); | 
|   966   CFX_WideStringC wsContentType = this->GetCData(XFA_ATTRIBUTE_ContentType); |   966   CFX_WideStringC wsContentType = GetCData(XFA_ATTRIBUTE_ContentType); | 
|   967   if (!wsContentType.IsEmpty()) { |   967   if (!wsContentType.IsEmpty()) { | 
|   968     pFakeRoot->SetCData(XFA_ATTRIBUTE_ContentType, wsContentType); |   968     pFakeRoot->SetCData(XFA_ATTRIBUTE_ContentType, wsContentType); | 
|   969   } |   969   } | 
|   970   IFDE_XMLNode* pFakeXMLRoot = pFakeRoot->GetXMLMappingNode(); |   970   IFDE_XMLNode* pFakeXMLRoot = pFakeRoot->GetXMLMappingNode(); | 
|   971   if (!pFakeXMLRoot) { |   971   if (!pFakeXMLRoot) { | 
|   972     IFDE_XMLNode* pThisXMLRoot = this->GetXMLMappingNode(); |   972     IFDE_XMLNode* pThisXMLRoot = GetXMLMappingNode(); | 
|   973     pFakeXMLRoot = pThisXMLRoot ? pThisXMLRoot->Clone(FALSE) : NULL; |   973     pFakeXMLRoot = pThisXMLRoot ? pThisXMLRoot->Clone(FALSE) : NULL; | 
|   974   } |   974   } | 
|   975   if (!pFakeXMLRoot) { |   975   if (!pFakeXMLRoot) { | 
|   976     CFX_WideStringC wsClassName; |   976     CFX_WideStringC wsClassName; | 
|   977     this->GetClassName(wsClassName); |   977     GetClassName(wsClassName); | 
|   978     pFakeXMLRoot = IFDE_XMLElement::Create(wsClassName); |   978     pFakeXMLRoot = IFDE_XMLElement::Create(wsClassName); | 
|   979   } |   979   } | 
|   980   if (bIgnoreRoot) { |   980   if (bIgnoreRoot) { | 
|   981     IFDE_XMLNode* pXMLChild = pXMLNode->GetNodeItem(IFDE_XMLNode::FirstChild); |   981     IFDE_XMLNode* pXMLChild = pXMLNode->GetNodeItem(IFDE_XMLNode::FirstChild); | 
|   982     while (pXMLChild) { |   982     while (pXMLChild) { | 
|   983       IFDE_XMLNode* pXMLSibling = |   983       IFDE_XMLNode* pXMLSibling = | 
|   984           pXMLChild->GetNodeItem(IFDE_XMLNode::NextSibling); |   984           pXMLChild->GetNodeItem(IFDE_XMLNode::NextSibling); | 
|   985       pXMLNode->RemoveChildNode(pXMLChild); |   985       pXMLNode->RemoveChildNode(pXMLChild); | 
|   986       pFakeXMLRoot->InsertChildNode(pXMLChild); |   986       pFakeXMLRoot->InsertChildNode(pXMLChild); | 
|   987       pXMLChild = pXMLSibling; |   987       pXMLChild = pXMLSibling; | 
|   988     } |   988     } | 
|   989   } else { |   989   } else { | 
|   990     IFDE_XMLNode* pXMLParent = pXMLNode->GetNodeItem(IFDE_XMLNode::Parent); |   990     IFDE_XMLNode* pXMLParent = pXMLNode->GetNodeItem(IFDE_XMLNode::Parent); | 
|   991     if (pXMLParent) { |   991     if (pXMLParent) { | 
|   992       pXMLParent->RemoveChildNode(pXMLNode); |   992       pXMLParent->RemoveChildNode(pXMLNode); | 
|   993     } |   993     } | 
|   994     pFakeXMLRoot->InsertChildNode(pXMLNode); |   994     pFakeXMLRoot->InsertChildNode(pXMLNode); | 
|   995   } |   995   } | 
|   996   pParser->ConstructXFANode(pFakeRoot, pFakeXMLRoot); |   996   pParser->ConstructXFANode(pFakeRoot, pFakeXMLRoot); | 
|   997   pFakeRoot = pParser->GetRootNode(); |   997   pFakeRoot = pParser->GetRootNode(); | 
|   998   if (pFakeRoot) { |   998   if (pFakeRoot) { | 
|   999     if (bOverwrite) { |   999     if (bOverwrite) { | 
|  1000       CXFA_Node* pChild = this->GetNodeItem(XFA_NODEITEM_FirstChild); |  1000       CXFA_Node* pChild = GetNodeItem(XFA_NODEITEM_FirstChild); | 
|  1001       CXFA_Node* pNewChild = pFakeRoot->GetNodeItem(XFA_NODEITEM_FirstChild); |  1001       CXFA_Node* pNewChild = pFakeRoot->GetNodeItem(XFA_NODEITEM_FirstChild); | 
|  1002       int32_t index = 0; |  1002       int32_t index = 0; | 
|  1003       while (pNewChild) { |  1003       while (pNewChild) { | 
|  1004         CXFA_Node* pItem = pNewChild->GetNodeItem(XFA_NODEITEM_NextSibling); |  1004         CXFA_Node* pItem = pNewChild->GetNodeItem(XFA_NODEITEM_NextSibling); | 
|  1005         pFakeRoot->RemoveChild(pNewChild); |  1005         pFakeRoot->RemoveChild(pNewChild); | 
|  1006         this->InsertChild(index++, pNewChild); |  1006         InsertChild(index++, pNewChild); | 
|  1007         pNewChild->SetFlag(XFA_NODEFLAG_Initialized); |  1007         pNewChild->SetFlag(XFA_NODEFLAG_Initialized); | 
|  1008         pNewChild = pItem; |  1008         pNewChild = pItem; | 
|  1009       } |  1009       } | 
|  1010       while (pChild) { |  1010       while (pChild) { | 
|  1011         CXFA_Node* pItem = pChild->GetNodeItem(XFA_NODEITEM_NextSibling); |  1011         CXFA_Node* pItem = pChild->GetNodeItem(XFA_NODEITEM_NextSibling); | 
|  1012         this->RemoveChild(pChild); |  1012         RemoveChild(pChild); | 
|  1013         pFakeRoot->InsertChild(pChild); |  1013         pFakeRoot->InsertChild(pChild); | 
|  1014         pChild = pItem; |  1014         pChild = pItem; | 
|  1015       } |  1015       } | 
|  1016       if (GetPacketID() == XFA_XDPPACKET_Form && |  1016       if (GetPacketID() == XFA_XDPPACKET_Form && | 
|  1017           GetClassID() == XFA_ELEMENT_ExData) { |  1017           GetClassID() == XFA_ELEMENT_ExData) { | 
|  1018         IFDE_XMLNode* pTempXMLNode = this->GetXMLMappingNode(); |  1018         IFDE_XMLNode* pTempXMLNode = GetXMLMappingNode(); | 
|  1019         this->SetXMLMappingNode(pFakeXMLRoot); |  1019         SetXMLMappingNode(pFakeXMLRoot); | 
|  1020         this->SetFlag(XFA_NODEFLAG_OwnXMLNode, TRUE, FALSE); |  1020         SetFlag(XFA_NODEFLAG_OwnXMLNode, TRUE, FALSE); | 
|  1021         if (pTempXMLNode && |  1021         if (pTempXMLNode && | 
|  1022             pTempXMLNode->GetNodeItem(IFDE_XMLNode::Parent) == NULL) { |  1022             pTempXMLNode->GetNodeItem(IFDE_XMLNode::Parent) == NULL) { | 
|  1023           pFakeXMLRoot = pTempXMLNode; |  1023           pFakeXMLRoot = pTempXMLNode; | 
|  1024         } else { |  1024         } else { | 
|  1025           pFakeXMLRoot = NULL; |  1025           pFakeXMLRoot = NULL; | 
|  1026         } |  1026         } | 
|  1027       } |  1027       } | 
|  1028       MoveBufferMapData(pFakeRoot, this, XFA_CalcData, TRUE); |  1028       MoveBufferMapData(pFakeRoot, this, XFA_CalcData, TRUE); | 
|  1029     } else { |  1029     } else { | 
|  1030       CXFA_Node* pChild = pFakeRoot->GetNodeItem(XFA_NODEITEM_FirstChild); |  1030       CXFA_Node* pChild = pFakeRoot->GetNodeItem(XFA_NODEITEM_FirstChild); | 
|  1031       while (pChild) { |  1031       while (pChild) { | 
|  1032         CXFA_Node* pItem = pChild->GetNodeItem(XFA_NODEITEM_NextSibling); |  1032         CXFA_Node* pItem = pChild->GetNodeItem(XFA_NODEITEM_NextSibling); | 
|  1033         pFakeRoot->RemoveChild(pChild); |  1033         pFakeRoot->RemoveChild(pChild); | 
|  1034         this->InsertChild(pChild); |  1034         InsertChild(pChild); | 
|  1035         pChild->SetFlag(XFA_NODEFLAG_Initialized); |  1035         pChild->SetFlag(XFA_NODEFLAG_Initialized); | 
|  1036         pChild = pItem; |  1036         pChild = pItem; | 
|  1037       } |  1037       } | 
|  1038     } |  1038     } | 
|  1039     if (pFakeXMLRoot) { |  1039     if (pFakeXMLRoot) { | 
|  1040       pFakeRoot->SetXMLMappingNode(pFakeXMLRoot); |  1040       pFakeRoot->SetXMLMappingNode(pFakeXMLRoot); | 
|  1041       pFakeRoot->SetFlag(XFA_NODEFLAG_OwnXMLNode, TRUE, FALSE); |  1041       pFakeRoot->SetFlag(XFA_NODEFLAG_OwnXMLNode, TRUE, FALSE); | 
|  1042     } |  1042     } | 
|  1043     pFakeRoot->SetFlag(XFA_NODEFLAG_HasRemoved, TRUE, FALSE); |  1043     pFakeRoot->SetFlag(XFA_NODEFLAG_HasRemoved, TRUE, FALSE); | 
|  1044   } else { |  1044   } else { | 
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1088         CFX_ByteStringC(pMemoryStream->GetBuffer(), pMemoryStream->GetSize())); |  1088         CFX_ByteStringC(pMemoryStream->GetBuffer(), pMemoryStream->GetSize())); | 
|  1089     pStream->Release(); |  1089     pStream->Release(); | 
|  1090     pStream = NULL; |  1090     pStream = NULL; | 
|  1091     if (pMemoryStream) { |  1091     if (pMemoryStream) { | 
|  1092       pMemoryStream->Release(); |  1092       pMemoryStream->Release(); | 
|  1093       pMemoryStream = NULL; |  1093       pMemoryStream = NULL; | 
|  1094     } |  1094     } | 
|  1095     return; |  1095     return; | 
|  1096   } |  1096   } | 
|  1097   if (GetPacketID() == XFA_XDPPACKET_Datasets) { |  1097   if (GetPacketID() == XFA_XDPPACKET_Datasets) { | 
|  1098     IFDE_XMLNode* pElement = this->GetXMLMappingNode(); |  1098     IFDE_XMLNode* pElement = GetXMLMappingNode(); | 
|  1099     if (!pElement || pElement->GetType() != FDE_XMLNODE_Element) { |  1099     if (!pElement || pElement->GetType() != FDE_XMLNODE_Element) { | 
|  1100       FXJSE_Value_SetUTF8String(pArguments->GetReturnValue(), bsXMLHeader); |  1100       FXJSE_Value_SetUTF8String(pArguments->GetReturnValue(), bsXMLHeader); | 
|  1101       return; |  1101       return; | 
|  1102     } |  1102     } | 
|  1103     XFA_DataExporter_DealWithDataGroupNode(this); |  1103     XFA_DataExporter_DealWithDataGroupNode(this); | 
|  1104     IFX_MemoryStream* pMemoryStream = FX_CreateMemoryStream(TRUE); |  1104     IFX_MemoryStream* pMemoryStream = FX_CreateMemoryStream(TRUE); | 
|  1105     IFX_Stream* pStream = IFX_Stream::CreateStream( |  1105     IFX_Stream* pStream = IFX_Stream::CreateStream( | 
|  1106         (IFX_FileWrite*)pMemoryStream, |  1106         (IFX_FileWrite*)pMemoryStream, | 
|  1107         FX_STREAMACCESS_Text | FX_STREAMACCESS_Write | FX_STREAMACCESS_Append); |  1107         FX_STREAMACCESS_Text | FX_STREAMACCESS_Write | FX_STREAMACCESS_Append); | 
|  1108     if (pStream) { |  1108     if (pStream) { | 
| (...skipping 22 matching lines...) Expand all  Loading... | 
|  1131                             L"setAttribute"); |  1131                             L"setAttribute"); | 
|  1132     return; |  1132     return; | 
|  1133   } |  1133   } | 
|  1134   CFX_WideString wsAttribute; |  1134   CFX_WideString wsAttribute; | 
|  1135   CFX_WideString wsAttributeValue; |  1135   CFX_WideString wsAttributeValue; | 
|  1136   CFX_ByteString bsAttributeValue = pArguments->GetUTF8String(0); |  1136   CFX_ByteString bsAttributeValue = pArguments->GetUTF8String(0); | 
|  1137   CFX_ByteString bsAttribute = pArguments->GetUTF8String(1); |  1137   CFX_ByteString bsAttribute = pArguments->GetUTF8String(1); | 
|  1138   wsAttributeValue = |  1138   wsAttributeValue = | 
|  1139       CFX_WideString::FromUTF8(bsAttributeValue, bsAttributeValue.GetLength()); |  1139       CFX_WideString::FromUTF8(bsAttributeValue, bsAttributeValue.GetLength()); | 
|  1140   wsAttribute = CFX_WideString::FromUTF8(bsAttribute, bsAttribute.GetLength()); |  1140   wsAttribute = CFX_WideString::FromUTF8(bsAttribute, bsAttribute.GetLength()); | 
|  1141   this->SetAttribute(wsAttribute, wsAttributeValue, TRUE); |  1141   SetAttribute(wsAttribute, wsAttributeValue, TRUE); | 
|  1142 } |  1142 } | 
|  1143 void CXFA_Node::Script_NodeClass_SetElement(CFXJSE_Arguments* pArguments) { |  1143 void CXFA_Node::Script_NodeClass_SetElement(CFXJSE_Arguments* pArguments) { | 
|  1144   int32_t iLength = pArguments->GetLength(); |  1144   int32_t iLength = pArguments->GetLength(); | 
|  1145   if (iLength != 1 && iLength != 2) { |  1145   if (iLength != 1 && iLength != 2) { | 
|  1146     ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"setElement"); |  1146     ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"setElement"); | 
|  1147     return; |  1147     return; | 
|  1148   } |  1148   } | 
|  1149   CXFA_Node* pNode = NULL; |  1149   CXFA_Node* pNode = NULL; | 
|  1150   CFX_WideString wsName; |  1150   CFX_WideString wsName; | 
|  1151   if (iLength >= 1) { |  1151   if (iLength >= 1) { | 
|  1152     pNode = static_cast<CXFA_Node*>(pArguments->GetObject(0)); |  1152     pNode = static_cast<CXFA_Node*>(pArguments->GetObject(0)); | 
|  1153   } |  1153   } | 
|  1154   if (iLength >= 2) { |  1154   if (iLength >= 2) { | 
|  1155     CFX_ByteString bsName = pArguments->GetUTF8String(1); |  1155     CFX_ByteString bsName = pArguments->GetUTF8String(1); | 
|  1156     wsName = CFX_WideString::FromUTF8(bsName, bsName.GetLength()); |  1156     wsName = CFX_WideString::FromUTF8(bsName, bsName.GetLength()); | 
|  1157   } |  1157   } | 
|  1158 } |  1158 } | 
|  1159 void CXFA_Node::Script_NodeClass_Ns(FXJSE_HVALUE hValue, |  1159 void CXFA_Node::Script_NodeClass_Ns(FXJSE_HVALUE hValue, | 
|  1160                                     FX_BOOL bSetting, |  1160                                     FX_BOOL bSetting, | 
|  1161                                     XFA_ATTRIBUTE eAttribute) { |  1161                                     XFA_ATTRIBUTE eAttribute) { | 
|  1162   if (bSetting) { |  1162   if (bSetting) { | 
|  1163     ThrowScriptErrorMessage(XFA_IDS_INVAlID_PROP_SET); |  1163     ThrowScriptErrorMessage(XFA_IDS_INVAlID_PROP_SET); | 
|  1164   } else { |  1164   } else { | 
|  1165     CFX_WideString wsNameSpace; |  1165     CFX_WideString wsNameSpace; | 
|  1166     this->TryNamespace(wsNameSpace); |  1166     TryNamespace(wsNameSpace); | 
|  1167     FXJSE_Value_SetUTF8String(hValue, FX_UTF8Encode(wsNameSpace)); |  1167     FXJSE_Value_SetUTF8String(hValue, FX_UTF8Encode(wsNameSpace)); | 
|  1168   } |  1168   } | 
|  1169 } |  1169 } | 
|  1170 void CXFA_Node::Script_NodeClass_Model(FXJSE_HVALUE hValue, |  1170 void CXFA_Node::Script_NodeClass_Model(FXJSE_HVALUE hValue, | 
|  1171                                        FX_BOOL bSetting, |  1171                                        FX_BOOL bSetting, | 
|  1172                                        XFA_ATTRIBUTE eAttribute) { |  1172                                        XFA_ATTRIBUTE eAttribute) { | 
|  1173   if (bSetting) { |  1173   if (bSetting) { | 
|  1174     ThrowScriptErrorMessage(XFA_IDS_INVAlID_PROP_SET); |  1174     ThrowScriptErrorMessage(XFA_IDS_INVAlID_PROP_SET); | 
|  1175   } else { |  1175   } else { | 
|  1176     FXJSE_Value_Set(hValue, m_pDocument->GetScriptContext()->GetJSValueFromMap( |  1176     FXJSE_Value_Set(hValue, m_pDocument->GetScriptContext()->GetJSValueFromMap( | 
|  1177                                 this->GetModelNode())); |  1177                                 GetModelNode())); | 
|  1178   } |  1178   } | 
|  1179 } |  1179 } | 
|  1180 void CXFA_Node::Script_NodeClass_IsContainer(FXJSE_HVALUE hValue, |  1180 void CXFA_Node::Script_NodeClass_IsContainer(FXJSE_HVALUE hValue, | 
|  1181                                              FX_BOOL bSetting, |  1181                                              FX_BOOL bSetting, | 
|  1182                                              XFA_ATTRIBUTE eAttribute) { |  1182                                              XFA_ATTRIBUTE eAttribute) { | 
|  1183   if (bSetting) { |  1183   if (bSetting) { | 
|  1184     ThrowScriptErrorMessage(XFA_IDS_INVAlID_PROP_SET); |  1184     ThrowScriptErrorMessage(XFA_IDS_INVAlID_PROP_SET); | 
|  1185   } else { |  1185   } else { | 
|  1186     FXJSE_Value_SetBoolean(hValue, this->IsContainerNode()); |  1186     FXJSE_Value_SetBoolean(hValue, IsContainerNode()); | 
|  1187   } |  1187   } | 
|  1188 } |  1188 } | 
|  1189 void CXFA_Node::Script_NodeClass_IsNull(FXJSE_HVALUE hValue, |  1189 void CXFA_Node::Script_NodeClass_IsNull(FXJSE_HVALUE hValue, | 
|  1190                                         FX_BOOL bSetting, |  1190                                         FX_BOOL bSetting, | 
|  1191                                         XFA_ATTRIBUTE eAttribute) { |  1191                                         XFA_ATTRIBUTE eAttribute) { | 
|  1192   if (bSetting) { |  1192   if (bSetting) { | 
|  1193     ThrowScriptErrorMessage(XFA_IDS_INVAlID_PROP_SET); |  1193     ThrowScriptErrorMessage(XFA_IDS_INVAlID_PROP_SET); | 
|  1194   } else { |  1194   } else { | 
|  1195     if (this->GetClassID() == XFA_ELEMENT_Subform) { |  1195     if (GetClassID() == XFA_ELEMENT_Subform) { | 
|  1196       FXJSE_Value_SetBoolean(hValue, FALSE); |  1196       FXJSE_Value_SetBoolean(hValue, FALSE); | 
|  1197       return; |  1197       return; | 
|  1198     } |  1198     } | 
|  1199     CFX_WideString strValue; |  1199     CFX_WideString strValue; | 
|  1200     FXJSE_Value_SetBoolean(hValue, !TryContent(strValue) || strValue.IsEmpty()); |  1200     FXJSE_Value_SetBoolean(hValue, !TryContent(strValue) || strValue.IsEmpty()); | 
|  1201   } |  1201   } | 
|  1202 } |  1202 } | 
|  1203 void CXFA_Node::Script_NodeClass_OneOfChild(FXJSE_HVALUE hValue, |  1203 void CXFA_Node::Script_NodeClass_OneOfChild(FXJSE_HVALUE hValue, | 
|  1204                                             FX_BOOL bSetting, |  1204                                             FX_BOOL bSetting, | 
|  1205                                             XFA_ATTRIBUTE eAttribute) { |  1205                                             XFA_ATTRIBUTE eAttribute) { | 
|  1206   if (bSetting) { |  1206   if (bSetting) { | 
|  1207     ThrowScriptErrorMessage(XFA_IDS_INVAlID_PROP_SET); |  1207     ThrowScriptErrorMessage(XFA_IDS_INVAlID_PROP_SET); | 
|  1208   } else { |  1208   } else { | 
|  1209     CXFA_NodeArray properts; |  1209     CXFA_NodeArray properts; | 
|  1210     int32_t iSize = this->GetNodeList(properts, XFA_NODEFILTER_OneOfProperty); |  1210     int32_t iSize = GetNodeList(properts, XFA_NODEFILTER_OneOfProperty); | 
|  1211     if (iSize > 0) { |  1211     if (iSize > 0) { | 
|  1212       FXJSE_Value_Set( |  1212       FXJSE_Value_Set( | 
|  1213           hValue, |  1213           hValue, | 
|  1214           m_pDocument->GetScriptContext()->GetJSValueFromMap(properts[0])); |  1214           m_pDocument->GetScriptContext()->GetJSValueFromMap(properts[0])); | 
|  1215     } |  1215     } | 
|  1216   } |  1216   } | 
|  1217 } |  1217 } | 
|  1218 void CXFA_Node::Script_ContainerClass_GetDelta(CFXJSE_Arguments* pArguments) {} |  1218 void CXFA_Node::Script_ContainerClass_GetDelta(CFXJSE_Arguments* pArguments) {} | 
|  1219 void CXFA_Node::Script_ContainerClass_GetDeltas(CFXJSE_Arguments* pArguments) { |  1219 void CXFA_Node::Script_ContainerClass_GetDeltas(CFXJSE_Arguments* pArguments) { | 
|  1220   CXFA_ArrayNodeList* pFormNodes = new CXFA_ArrayNodeList(m_pDocument); |  1220   CXFA_ArrayNodeList* pFormNodes = new CXFA_ArrayNodeList(m_pDocument); | 
| (...skipping 12 matching lines...) Expand all  Loading... | 
|  1233                             L"isCompatibleNS"); |  1233                             L"isCompatibleNS"); | 
|  1234     return; |  1234     return; | 
|  1235   } |  1235   } | 
|  1236   CFX_WideString wsNameSpace; |  1236   CFX_WideString wsNameSpace; | 
|  1237   if (iLength >= 1) { |  1237   if (iLength >= 1) { | 
|  1238     CFX_ByteString bsNameSpace = pArguments->GetUTF8String(0); |  1238     CFX_ByteString bsNameSpace = pArguments->GetUTF8String(0); | 
|  1239     wsNameSpace = |  1239     wsNameSpace = | 
|  1240         CFX_WideString::FromUTF8(bsNameSpace, bsNameSpace.GetLength()); |  1240         CFX_WideString::FromUTF8(bsNameSpace, bsNameSpace.GetLength()); | 
|  1241   } |  1241   } | 
|  1242   CFX_WideString wsNodeNameSpace; |  1242   CFX_WideString wsNodeNameSpace; | 
|  1243   this->TryNamespace(wsNodeNameSpace); |  1243   TryNamespace(wsNodeNameSpace); | 
|  1244   FXJSE_HVALUE hValue = pArguments->GetReturnValue(); |  1244   FXJSE_HVALUE hValue = pArguments->GetReturnValue(); | 
|  1245   if (hValue) { |  1245   if (hValue) { | 
|  1246     FXJSE_Value_SetBoolean(hValue, wsNodeNameSpace.Equal(wsNameSpace)); |  1246     FXJSE_Value_SetBoolean(hValue, wsNodeNameSpace.Equal(wsNameSpace)); | 
|  1247   } |  1247   } | 
|  1248 } |  1248 } | 
|  1249 void CXFA_Node::Script_ModelClass_Context(FXJSE_HVALUE hValue, |  1249 void CXFA_Node::Script_ModelClass_Context(FXJSE_HVALUE hValue, | 
|  1250                                           FX_BOOL bSetting, |  1250                                           FX_BOOL bSetting, | 
|  1251                                           XFA_ATTRIBUTE eAttribute) {} |  1251                                           XFA_ATTRIBUTE eAttribute) {} | 
|  1252 void CXFA_Node::Script_ModelClass_AliasNode(FXJSE_HVALUE hValue, |  1252 void CXFA_Node::Script_ModelClass_AliasNode(FXJSE_HVALUE hValue, | 
|  1253                                             FX_BOOL bSetting, |  1253                                             FX_BOOL bSetting, | 
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1293     void* eValue, |  1293     void* eValue, | 
|  1294     FX_BOOL bScriptModify) { |  1294     FX_BOOL bScriptModify) { | 
|  1295   CXFA_LayoutProcessor* pLayoutPro = m_pDocument->GetLayoutProcessor(); |  1295   CXFA_LayoutProcessor* pLayoutPro = m_pDocument->GetLayoutProcessor(); | 
|  1296   if (!pLayoutPro) { |  1296   if (!pLayoutPro) { | 
|  1297     return; |  1297     return; | 
|  1298   } |  1298   } | 
|  1299   IXFA_Notify* pNotify = m_pDocument->GetParser()->GetNotify(); |  1299   IXFA_Notify* pNotify = m_pDocument->GetParser()->GetNotify(); | 
|  1300   if (!pNotify) { |  1300   if (!pNotify) { | 
|  1301     return; |  1301     return; | 
|  1302   } |  1302   } | 
|  1303   FX_DWORD dwPacket = this->GetPacketID(); |  1303   FX_DWORD dwPacket = GetPacketID(); | 
|  1304   if (dwPacket & XFA_XDPPACKET_Form) { |  1304   if (dwPacket & XFA_XDPPACKET_Form) { | 
|  1305     FX_BOOL bNeedFindContainer = FALSE; |  1305     FX_BOOL bNeedFindContainer = FALSE; | 
|  1306     XFA_ELEMENT eType = this->GetClassID(); |  1306     XFA_ELEMENT eType = GetClassID(); | 
|  1307     switch (eType) { |  1307     switch (eType) { | 
|  1308       case XFA_ELEMENT_Caption: |  1308       case XFA_ELEMENT_Caption: | 
|  1309         bNeedFindContainer = TRUE; |  1309         bNeedFindContainer = TRUE; | 
|  1310         pNotify->OnNodeEvent(this, XFA_NODEEVENT_ValueChanged, eAttribute, |  1310         pNotify->OnNodeEvent(this, XFA_NODEEVENT_ValueChanged, eAttribute, | 
|  1311                              eValue, this, |  1311                              eValue, this, GetNodeItem(XFA_NODEITEM_Parent)); | 
|  1312                              this->GetNodeItem(XFA_NODEITEM_Parent)); |  | 
|  1313         break; |  1312         break; | 
|  1314       case XFA_ELEMENT_Font: |  1313       case XFA_ELEMENT_Font: | 
|  1315       case XFA_ELEMENT_Para: { |  1314       case XFA_ELEMENT_Para: { | 
|  1316         bNeedFindContainer = TRUE; |  1315         bNeedFindContainer = TRUE; | 
|  1317         CXFA_Node* pParentNode = this->GetNodeItem(XFA_NODEITEM_Parent); |  1316         CXFA_Node* pParentNode = GetNodeItem(XFA_NODEITEM_Parent); | 
|  1318         if (pParentNode->GetClassID() == XFA_ELEMENT_Caption) { |  1317         if (pParentNode->GetClassID() == XFA_ELEMENT_Caption) { | 
|  1319           pNotify->OnNodeEvent(this, XFA_NODEEVENT_ValueChanged, eAttribute, |  1318           pNotify->OnNodeEvent(this, XFA_NODEEVENT_ValueChanged, eAttribute, | 
|  1320                                eValue, pParentNode, |  1319                                eValue, pParentNode, | 
|  1321                                pParentNode->GetNodeItem(XFA_NODEITEM_Parent)); |  1320                                pParentNode->GetNodeItem(XFA_NODEITEM_Parent)); | 
|  1322         } else { |  1321         } else { | 
|  1323           pNotify->OnNodeEvent(this, XFA_NODEEVENT_ValueChanged, eAttribute, |  1322           pNotify->OnNodeEvent(this, XFA_NODEEVENT_ValueChanged, eAttribute, | 
|  1324                                eValue, this, pParentNode); |  1323                                eValue, this, pParentNode); | 
|  1325         } |  1324         } | 
|  1326       } break; |  1325       } break; | 
|  1327       case XFA_ELEMENT_Margin: { |  1326       case XFA_ELEMENT_Margin: { | 
|  1328         bNeedFindContainer = TRUE; |  1327         bNeedFindContainer = TRUE; | 
|  1329         CXFA_Node* pParentNode = this->GetNodeItem(XFA_NODEITEM_Parent); |  1328         CXFA_Node* pParentNode = GetNodeItem(XFA_NODEITEM_Parent); | 
|  1330         XFA_ELEMENT eParentType = pParentNode->GetClassID(); |  1329         XFA_ELEMENT eParentType = pParentNode->GetClassID(); | 
|  1331         if (pParentNode->IsContainerNode()) { |  1330         if (pParentNode->IsContainerNode()) { | 
|  1332           pNotify->OnNodeEvent(this, XFA_NODEEVENT_ValueChanged, eAttribute, |  1331           pNotify->OnNodeEvent(this, XFA_NODEEVENT_ValueChanged, eAttribute, | 
|  1333                                eValue, this, pParentNode); |  1332                                eValue, this, pParentNode); | 
|  1334         } else if (eParentType == XFA_ELEMENT_Caption) { |  1333         } else if (eParentType == XFA_ELEMENT_Caption) { | 
|  1335           pNotify->OnNodeEvent(this, XFA_NODEEVENT_ValueChanged, eAttribute, |  1334           pNotify->OnNodeEvent(this, XFA_NODEEVENT_ValueChanged, eAttribute, | 
|  1336                                eValue, pParentNode, |  1335                                eValue, pParentNode, | 
|  1337                                pParentNode->GetNodeItem(XFA_NODEITEM_Parent)); |  1336                                pParentNode->GetNodeItem(XFA_NODEITEM_Parent)); | 
|  1338         } else { |  1337         } else { | 
|  1339           CXFA_Node* pNode = pParentNode->GetNodeItem(XFA_NODEITEM_Parent); |  1338           CXFA_Node* pNode = pParentNode->GetNodeItem(XFA_NODEITEM_Parent); | 
|  1340           if (pNode && pNode->GetClassID() == XFA_ELEMENT_Ui) { |  1339           if (pNode && pNode->GetClassID() == XFA_ELEMENT_Ui) { | 
|  1341             pNotify->OnNodeEvent(this, XFA_NODEEVENT_ValueChanged, eAttribute, |  1340             pNotify->OnNodeEvent(this, XFA_NODEEVENT_ValueChanged, eAttribute, | 
|  1342                                  eValue, pNode, |  1341                                  eValue, pNode, | 
|  1343                                  pNode->GetNodeItem(XFA_NODEITEM_Parent)); |  1342                                  pNode->GetNodeItem(XFA_NODEITEM_Parent)); | 
|  1344           } |  1343           } | 
|  1345         } |  1344         } | 
|  1346       } break; |  1345       } break; | 
|  1347       case XFA_ELEMENT_Comb: { |  1346       case XFA_ELEMENT_Comb: { | 
|  1348         CXFA_Node* pEditNode = this->GetNodeItem(XFA_NODEITEM_Parent); |  1347         CXFA_Node* pEditNode = GetNodeItem(XFA_NODEITEM_Parent); | 
|  1349         XFA_ELEMENT eUIType = pEditNode->GetClassID(); |  1348         XFA_ELEMENT eUIType = pEditNode->GetClassID(); | 
|  1350         if (pEditNode && (eUIType == XFA_ELEMENT_DateTimeEdit || |  1349         if (pEditNode && (eUIType == XFA_ELEMENT_DateTimeEdit || | 
|  1351                           eUIType == XFA_ELEMENT_NumericEdit || |  1350                           eUIType == XFA_ELEMENT_NumericEdit || | 
|  1352                           eUIType == XFA_ELEMENT_TextEdit)) { |  1351                           eUIType == XFA_ELEMENT_TextEdit)) { | 
|  1353           CXFA_Node* pUINode = pEditNode->GetNodeItem(XFA_NODEITEM_Parent); |  1352           CXFA_Node* pUINode = pEditNode->GetNodeItem(XFA_NODEITEM_Parent); | 
|  1354           if (pUINode) { |  1353           if (pUINode) { | 
|  1355             pNotify->OnNodeEvent(this, XFA_NODEEVENT_ValueChanged, eAttribute, |  1354             pNotify->OnNodeEvent(this, XFA_NODEEVENT_ValueChanged, eAttribute, | 
|  1356                                  eValue, pUINode, |  1355                                  eValue, pUINode, | 
|  1357                                  pUINode->GetNodeItem(XFA_NODEITEM_Parent)); |  1356                                  pUINode->GetNodeItem(XFA_NODEITEM_Parent)); | 
|  1358           } |  1357           } | 
|  1359         } |  1358         } | 
|  1360       } break; |  1359       } break; | 
|  1361       case XFA_ELEMENT_Button: |  1360       case XFA_ELEMENT_Button: | 
|  1362       case XFA_ELEMENT_Barcode: |  1361       case XFA_ELEMENT_Barcode: | 
|  1363       case XFA_ELEMENT_ChoiceList: |  1362       case XFA_ELEMENT_ChoiceList: | 
|  1364       case XFA_ELEMENT_DateTimeEdit: |  1363       case XFA_ELEMENT_DateTimeEdit: | 
|  1365       case XFA_ELEMENT_NumericEdit: |  1364       case XFA_ELEMENT_NumericEdit: | 
|  1366       case XFA_ELEMENT_PasswordEdit: |  1365       case XFA_ELEMENT_PasswordEdit: | 
|  1367       case XFA_ELEMENT_TextEdit: { |  1366       case XFA_ELEMENT_TextEdit: { | 
|  1368         CXFA_Node* pUINode = this->GetNodeItem(XFA_NODEITEM_Parent); |  1367         CXFA_Node* pUINode = GetNodeItem(XFA_NODEITEM_Parent); | 
|  1369         if (pUINode) { |  1368         if (pUINode) { | 
|  1370           pNotify->OnNodeEvent(this, XFA_NODEEVENT_ValueChanged, eAttribute, |  1369           pNotify->OnNodeEvent(this, XFA_NODEEVENT_ValueChanged, eAttribute, | 
|  1371                                eValue, pUINode, |  1370                                eValue, pUINode, | 
|  1372                                pUINode->GetNodeItem(XFA_NODEITEM_Parent)); |  1371                                pUINode->GetNodeItem(XFA_NODEITEM_Parent)); | 
|  1373         } |  1372         } | 
|  1374       } break; |  1373       } break; | 
|  1375       case XFA_ELEMENT_CheckButton: { |  1374       case XFA_ELEMENT_CheckButton: { | 
|  1376         bNeedFindContainer = TRUE; |  1375         bNeedFindContainer = TRUE; | 
|  1377         CXFA_Node* pUINode = this->GetNodeItem(XFA_NODEITEM_Parent); |  1376         CXFA_Node* pUINode = GetNodeItem(XFA_NODEITEM_Parent); | 
|  1378         if (pUINode) { |  1377         if (pUINode) { | 
|  1379           pNotify->OnNodeEvent(this, XFA_NODEEVENT_ValueChanged, eAttribute, |  1378           pNotify->OnNodeEvent(this, XFA_NODEEVENT_ValueChanged, eAttribute, | 
|  1380                                eValue, pUINode, |  1379                                eValue, pUINode, | 
|  1381                                pUINode->GetNodeItem(XFA_NODEITEM_Parent)); |  1380                                pUINode->GetNodeItem(XFA_NODEITEM_Parent)); | 
|  1382         } |  1381         } | 
|  1383       } break; |  1382       } break; | 
|  1384       case XFA_ELEMENT_Keep: |  1383       case XFA_ELEMENT_Keep: | 
|  1385       case XFA_ELEMENT_Bookend: |  1384       case XFA_ELEMENT_Bookend: | 
|  1386       case XFA_ELEMENT_Break: |  1385       case XFA_ELEMENT_Break: | 
|  1387       case XFA_ELEMENT_BreakAfter: |  1386       case XFA_ELEMENT_BreakAfter: | 
|  1388       case XFA_ELEMENT_BreakBefore: |  1387       case XFA_ELEMENT_BreakBefore: | 
|  1389       case XFA_ELEMENT_Overflow: |  1388       case XFA_ELEMENT_Overflow: | 
|  1390         bNeedFindContainer = TRUE; |  1389         bNeedFindContainer = TRUE; | 
|  1391         break; |  1390         break; | 
|  1392       case XFA_ELEMENT_Area: |  1391       case XFA_ELEMENT_Area: | 
|  1393       case XFA_ELEMENT_Draw: |  1392       case XFA_ELEMENT_Draw: | 
|  1394       case XFA_ELEMENT_ExclGroup: |  1393       case XFA_ELEMENT_ExclGroup: | 
|  1395       case XFA_ELEMENT_Field: |  1394       case XFA_ELEMENT_Field: | 
|  1396       case XFA_ELEMENT_Subform: |  1395       case XFA_ELEMENT_Subform: | 
|  1397       case XFA_ELEMENT_SubformSet: |  1396       case XFA_ELEMENT_SubformSet: | 
|  1398         pLayoutPro->AddChangedContainer(this); |  1397         pLayoutPro->AddChangedContainer(this); | 
|  1399         pNotify->OnNodeEvent(this, XFA_NODEEVENT_ValueChanged, eAttribute, |  1398         pNotify->OnNodeEvent(this, XFA_NODEEVENT_ValueChanged, eAttribute, | 
|  1400                              eValue, this, this); |  1399                              eValue, this, this); | 
|  1401         break; |  1400         break; | 
|  1402       case XFA_ELEMENT_Sharptext: |  1401       case XFA_ELEMENT_Sharptext: | 
|  1403       case XFA_ELEMENT_Sharpxml: |  1402       case XFA_ELEMENT_Sharpxml: | 
|  1404       case XFA_ELEMENT_SharpxHTML: { |  1403       case XFA_ELEMENT_SharpxHTML: { | 
|  1405         CXFA_Node* pTextNode = this->GetNodeItem(XFA_NODEITEM_Parent); |  1404         CXFA_Node* pTextNode = GetNodeItem(XFA_NODEITEM_Parent); | 
|  1406         if (!pTextNode) { |  1405         if (!pTextNode) { | 
|  1407           return; |  1406           return; | 
|  1408         } |  1407         } | 
|  1409         CXFA_Node* pValueNode = pTextNode->GetNodeItem(XFA_NODEITEM_Parent); |  1408         CXFA_Node* pValueNode = pTextNode->GetNodeItem(XFA_NODEITEM_Parent); | 
|  1410         if (!pValueNode) { |  1409         if (!pValueNode) { | 
|  1411           return; |  1410           return; | 
|  1412         } |  1411         } | 
|  1413         XFA_ELEMENT eType = pValueNode->GetClassID(); |  1412         XFA_ELEMENT eType = pValueNode->GetClassID(); | 
|  1414         if (eType == XFA_ELEMENT_Value) { |  1413         if (eType == XFA_ELEMENT_Value) { | 
|  1415           bNeedFindContainer = TRUE; |  1414           bNeedFindContainer = TRUE; | 
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1457 } |  1456 } | 
|  1458 void CXFA_Node::Script_Attribute_String(FXJSE_HVALUE hValue, |  1457 void CXFA_Node::Script_Attribute_String(FXJSE_HVALUE hValue, | 
|  1459                                         FX_BOOL bSetting, |  1458                                         FX_BOOL bSetting, | 
|  1460                                         XFA_ATTRIBUTE eAttribute) { |  1459                                         XFA_ATTRIBUTE eAttribute) { | 
|  1461   if (bSetting) { |  1460   if (bSetting) { | 
|  1462     CFX_ByteString szValue; |  1461     CFX_ByteString szValue; | 
|  1463     FXJSE_Value_ToUTF8String(hValue, szValue); |  1462     FXJSE_Value_ToUTF8String(hValue, szValue); | 
|  1464     CFX_WideString wsValue = |  1463     CFX_WideString wsValue = | 
|  1465         CFX_WideString::FromUTF8(szValue, szValue.GetLength()); |  1464         CFX_WideString::FromUTF8(szValue, szValue.GetLength()); | 
|  1466     SetAttribute(eAttribute, wsValue, TRUE); |  1465     SetAttribute(eAttribute, wsValue, TRUE); | 
|  1467     if (eAttribute == XFA_ATTRIBUTE_Use && |  1466     if (eAttribute == XFA_ATTRIBUTE_Use && GetClassID() == XFA_ELEMENT_Desc) { | 
|  1468         this->GetClassID() == XFA_ELEMENT_Desc) { |  | 
|  1469       CFX_WideString wsUseVal = wsValue, wsID, wsSOM; |  1467       CFX_WideString wsUseVal = wsValue, wsID, wsSOM; | 
|  1470       CXFA_Node* pTemplateNode = |  1468       CXFA_Node* pTemplateNode = | 
|  1471           ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Template)); |  1469           ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Template)); | 
|  1472       CXFA_Node* pProtoRoot = |  1470       CXFA_Node* pProtoRoot = | 
|  1473           pTemplateNode->GetFirstChildByClass(XFA_ELEMENT_Subform) |  1471           pTemplateNode->GetFirstChildByClass(XFA_ELEMENT_Subform) | 
|  1474               ->GetFirstChildByClass(XFA_ELEMENT_Proto); |  1472               ->GetFirstChildByClass(XFA_ELEMENT_Proto); | 
|  1475       if (!wsUseVal.IsEmpty()) { |  1473       if (!wsUseVal.IsEmpty()) { | 
|  1476         if (wsUseVal[0] == '#') { |  1474         if (wsUseVal[0] == '#') { | 
|  1477           wsID = CFX_WideString((const FX_WCHAR*)wsUseVal + 1, |  1475           wsID = CFX_WideString((const FX_WCHAR*)wsUseVal + 1, | 
|  1478                                 wsUseVal.GetLength() - 1); |  1476                                 wsUseVal.GetLength() - 1); | 
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1654     CFX_ByteString newValue; |  1652     CFX_ByteString newValue; | 
|  1655     if (!(FXJSE_Value_IsNull(hValue) || FXJSE_Value_IsUndefined(hValue))) { |  1653     if (!(FXJSE_Value_IsNull(hValue) || FXJSE_Value_IsUndefined(hValue))) { | 
|  1656       FXJSE_Value_ToUTF8String(hValue, newValue); |  1654       FXJSE_Value_ToUTF8String(hValue, newValue); | 
|  1657     } |  1655     } | 
|  1658     CFX_WideString wsNewValue = |  1656     CFX_WideString wsNewValue = | 
|  1659         CFX_WideString::FromUTF8(newValue, newValue.GetLength()); |  1657         CFX_WideString::FromUTF8(newValue, newValue.GetLength()); | 
|  1660     CFX_WideString wsFormatValue(wsNewValue); |  1658     CFX_WideString wsFormatValue(wsNewValue); | 
|  1661     CXFA_WidgetData* pContainerWidgetData = NULL; |  1659     CXFA_WidgetData* pContainerWidgetData = NULL; | 
|  1662     if (GetPacketID() == XFA_XDPPACKET_Datasets) { |  1660     if (GetPacketID() == XFA_XDPPACKET_Datasets) { | 
|  1663       CXFA_NodeArray formNodes; |  1661       CXFA_NodeArray formNodes; | 
|  1664       this->GetBindItems(formNodes); |  1662       GetBindItems(formNodes); | 
|  1665       CFX_WideString wsPicture; |  1663       CFX_WideString wsPicture; | 
|  1666       for (int32_t i = 0; i < formNodes.GetSize(); i++) { |  1664       for (int32_t i = 0; i < formNodes.GetSize(); i++) { | 
|  1667         CXFA_Node* pFormNode = formNodes.GetAt(i); |  1665         CXFA_Node* pFormNode = formNodes.GetAt(i); | 
|  1668         if (!pFormNode || pFormNode->HasFlag(XFA_NODEFLAG_HasRemoved)) { |  1666         if (!pFormNode || pFormNode->HasFlag(XFA_NODEFLAG_HasRemoved)) { | 
|  1669           continue; |  1667           continue; | 
|  1670         } |  1668         } | 
|  1671         pContainerWidgetData = pFormNode->GetContainerWidgetData(); |  1669         pContainerWidgetData = pFormNode->GetContainerWidgetData(); | 
|  1672         if (pContainerWidgetData) { |  1670         if (pContainerWidgetData) { | 
|  1673           pContainerWidgetData->GetPictureContent(wsPicture, |  1671           pContainerWidgetData->GetPictureContent(wsPicture, | 
|  1674                                                   XFA_VALUEPICTURE_DataBind); |  1672                                                   XFA_VALUEPICTURE_DataBind); | 
| (...skipping 870 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  2545       } |  2543       } | 
|  2546     } |  2544     } | 
|  2547   } else { |  2545   } else { | 
|  2548     FXJSE_Value_SetInteger(hValue, Subform_and_SubformSet_InstanceIndex()); |  2546     FXJSE_Value_SetInteger(hValue, Subform_and_SubformSet_InstanceIndex()); | 
|  2549   } |  2547   } | 
|  2550 } |  2548 } | 
|  2551 void CXFA_Node::Script_Subform_InstanceManager(FXJSE_HVALUE hValue, |  2549 void CXFA_Node::Script_Subform_InstanceManager(FXJSE_HVALUE hValue, | 
|  2552                                                FX_BOOL bSetting, |  2550                                                FX_BOOL bSetting, | 
|  2553                                                XFA_ATTRIBUTE eAttribute) { |  2551                                                XFA_ATTRIBUTE eAttribute) { | 
|  2554   if (!bSetting) { |  2552   if (!bSetting) { | 
|  2555     CFX_WideStringC wsName = this->GetCData(XFA_ATTRIBUTE_Name); |  2553     CFX_WideStringC wsName = GetCData(XFA_ATTRIBUTE_Name); | 
|  2556     CXFA_Node* pInstanceMgr = NULL; |  2554     CXFA_Node* pInstanceMgr = NULL; | 
|  2557     for (CXFA_Node* pNode = GetNodeItem(XFA_NODEITEM_PrevSibling); |  2555     for (CXFA_Node* pNode = GetNodeItem(XFA_NODEITEM_PrevSibling); | 
|  2558          pNode != NULL; pNode = pNode->GetNodeItem(XFA_NODEITEM_PrevSibling)) { |  2556          pNode != NULL; pNode = pNode->GetNodeItem(XFA_NODEITEM_PrevSibling)) { | 
|  2559       if (pNode->GetClassID() == XFA_ELEMENT_InstanceManager) { |  2557       if (pNode->GetClassID() == XFA_ELEMENT_InstanceManager) { | 
|  2560         CFX_WideStringC wsInstMgrName = pNode->GetCData(XFA_ATTRIBUTE_Name); |  2558         CFX_WideStringC wsInstMgrName = pNode->GetCData(XFA_ATTRIBUTE_Name); | 
|  2561         if (wsInstMgrName.GetLength() >= 1 && wsInstMgrName.GetAt(0) == '_' && |  2559         if (wsInstMgrName.GetLength() >= 1 && wsInstMgrName.GetAt(0) == '_' && | 
|  2562             wsInstMgrName.Mid(1) == wsName) { |  2560             wsInstMgrName.Mid(1) == wsName) { | 
|  2563           pInstanceMgr = pNode; |  2561           pInstanceMgr = pNode; | 
|  2564         } |  2562         } | 
|  2565         break; |  2563         break; | 
|  2566       } |  2564       } | 
|  2567     } |  2565     } | 
|  2568     if (pInstanceMgr) { |  2566     if (pInstanceMgr) { | 
|  2569       FXJSE_Value_Set( |  2567       FXJSE_Value_Set( | 
|  2570           hValue, |  2568           hValue, | 
|  2571           m_pDocument->GetScriptContext()->GetJSValueFromMap(pInstanceMgr)); |  2569           m_pDocument->GetScriptContext()->GetJSValueFromMap(pInstanceMgr)); | 
|  2572     } else { |  2570     } else { | 
|  2573       FXJSE_Value_SetNull(hValue); |  2571       FXJSE_Value_SetNull(hValue); | 
|  2574     } |  2572     } | 
|  2575   } else { |  2573   } else { | 
|  2576     ThrowScriptErrorMessage(XFA_IDS_INVAlID_PROP_SET); |  2574     ThrowScriptErrorMessage(XFA_IDS_INVAlID_PROP_SET); | 
|  2577   } |  2575   } | 
|  2578 } |  2576 } | 
|  2579 void CXFA_Node::Script_Subform_Locale(FXJSE_HVALUE hValue, |  2577 void CXFA_Node::Script_Subform_Locale(FXJSE_HVALUE hValue, | 
|  2580                                       FX_BOOL bSetting, |  2578                                       FX_BOOL bSetting, | 
|  2581                                       XFA_ATTRIBUTE eAttribute) { |  2579                                       XFA_ATTRIBUTE eAttribute) { | 
|  2582   if (bSetting) { |  2580   if (bSetting) { | 
|  2583     CFX_ByteString bsLocaleName; |  2581     CFX_ByteString bsLocaleName; | 
|  2584     FXJSE_Value_ToUTF8String(hValue, bsLocaleName); |  2582     FXJSE_Value_ToUTF8String(hValue, bsLocaleName); | 
|  2585     this->SetCData( |  2583     SetCData(XFA_ATTRIBUTE_Locale, | 
|  2586         XFA_ATTRIBUTE_Locale, |  2584              CFX_WideString::FromUTF8(bsLocaleName, bsLocaleName.GetLength()), | 
|  2587         CFX_WideString::FromUTF8(bsLocaleName, bsLocaleName.GetLength()), TRUE, |  2585              TRUE, TRUE); | 
|  2588         TRUE); |  | 
|  2589   } else { |  2586   } else { | 
|  2590     CFX_WideString wsLocaleName; |  2587     CFX_WideString wsLocaleName; | 
|  2591     GetLocaleName(wsLocaleName); |  2588     GetLocaleName(wsLocaleName); | 
|  2592     FXJSE_Value_SetUTF8String( |  2589     FXJSE_Value_SetUTF8String( | 
|  2593         hValue, FX_UTF8Encode(wsLocaleName, wsLocaleName.GetLength())); |  2590         hValue, FX_UTF8Encode(wsLocaleName, wsLocaleName.GetLength())); | 
|  2594   } |  2591   } | 
|  2595 } |  2592 } | 
|  2596 void CXFA_Node::Script_Subform_ExecEvent(CFXJSE_Arguments* pArguments) { |  2593 void CXFA_Node::Script_Subform_ExecEvent(CFXJSE_Arguments* pArguments) { | 
|  2597   int32_t argc = pArguments->GetLength(); |  2594   int32_t argc = pArguments->GetLength(); | 
|  2598   if (argc == 1) { |  2595   if (argc == 1) { | 
| (...skipping 680 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  3279   } |  3276   } | 
|  3280   if ((iMax >= 0) && (iDesired > iMax)) { |  3277   if ((iMax >= 0) && (iDesired > iMax)) { | 
|  3281     ThrowScriptErrorMessage(XFA_IDS_VIOLATE_BOUNDARY, L"max"); |  3278     ThrowScriptErrorMessage(XFA_IDS_VIOLATE_BOUNDARY, L"max"); | 
|  3282     return 2; |  3279     return 2; | 
|  3283   } |  3280   } | 
|  3284   int32_t iCount = XFA_ScriptInstanceManager_GetCount(this); |  3281   int32_t iCount = XFA_ScriptInstanceManager_GetCount(this); | 
|  3285   if (iDesired == iCount) { |  3282   if (iDesired == iCount) { | 
|  3286     return 0; |  3283     return 0; | 
|  3287   } |  3284   } | 
|  3288   if (iDesired < iCount) { |  3285   if (iDesired < iCount) { | 
|  3289     CFX_WideStringC wsInstManagerName = this->GetCData(XFA_ATTRIBUTE_Name); |  3286     CFX_WideStringC wsInstManagerName = GetCData(XFA_ATTRIBUTE_Name); | 
|  3290     CFX_WideString wsInstanceName = wsInstManagerName.IsEmpty() |  3287     CFX_WideString wsInstanceName = wsInstManagerName.IsEmpty() | 
|  3291                                         ? wsInstManagerName |  3288                                         ? wsInstManagerName | 
|  3292                                         : wsInstManagerName.Mid(1); |  3289                                         : wsInstManagerName.Mid(1); | 
|  3293     FX_DWORD dInstanceNameHash = |  3290     FX_DWORD dInstanceNameHash = | 
|  3294         wsInstanceName.IsEmpty() ? 0 : FX_HashCode_String_GetW( |  3291         wsInstanceName.IsEmpty() ? 0 : FX_HashCode_String_GetW( | 
|  3295                                            wsInstanceName, |  3292                                            wsInstanceName, | 
|  3296                                            wsInstanceName.GetLength()); |  3293                                            wsInstanceName.GetLength()); | 
|  3297     CXFA_Node* pPrevSibling = |  3294     CXFA_Node* pPrevSibling = | 
|  3298         (iDesired == 0) ? this |  3295         (iDesired == 0) ? this | 
|  3299                         : XFA_ScriptInstanceManager_GetItem(this, iDesired - 1); |  3296                         : XFA_ScriptInstanceManager_GetItem(this, iDesired - 1); | 
| (...skipping 667 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  3967       FDE_XMLNODETYPE eXMLType = m_pXMLNode->GetType(); |  3964       FDE_XMLNODETYPE eXMLType = m_pXMLNode->GetType(); | 
|  3968       switch (eXMLType) { |  3965       switch (eXMLType) { | 
|  3969         case FDE_XMLNODE_Element: |  3966         case FDE_XMLNODE_Element: | 
|  3970           if (IsAttributeInXML()) { |  3967           if (IsAttributeInXML()) { | 
|  3971             ((IFDE_XMLElement*)m_pXMLNode) |  3968             ((IFDE_XMLElement*)m_pXMLNode) | 
|  3972                 ->SetString(GetCData(XFA_ATTRIBUTE_QualifiedName), wsValue); |  3969                 ->SetString(GetCData(XFA_ATTRIBUTE_QualifiedName), wsValue); | 
|  3973           } else { |  3970           } else { | 
|  3974             FX_BOOL bDeleteChildren = TRUE; |  3971             FX_BOOL bDeleteChildren = TRUE; | 
|  3975             if (GetPacketID() == XFA_XDPPACKET_Datasets) { |  3972             if (GetPacketID() == XFA_XDPPACKET_Datasets) { | 
|  3976               for (CXFA_Node* pChildDataNode = |  3973               for (CXFA_Node* pChildDataNode = | 
|  3977                        this->GetNodeItem(XFA_NODEITEM_FirstChild); |  3974                        GetNodeItem(XFA_NODEITEM_FirstChild); | 
|  3978                    pChildDataNode; pChildDataNode = pChildDataNode->GetNodeItem( |  3975                    pChildDataNode; pChildDataNode = pChildDataNode->GetNodeItem( | 
|  3979                                        XFA_NODEITEM_NextSibling)) { |  3976                                        XFA_NODEITEM_NextSibling)) { | 
|  3980                 CXFA_NodeArray formNodes; |  3977                 CXFA_NodeArray formNodes; | 
|  3981                 if (pChildDataNode->GetBindItems(formNodes) > 0) { |  3978                 if (pChildDataNode->GetBindItems(formNodes) > 0) { | 
|  3982                   bDeleteChildren = FALSE; |  3979                   bDeleteChildren = FALSE; | 
|  3983                   break; |  3980                   break; | 
|  3984                 } |  3981                 } | 
|  3985               } |  3982               } | 
|  3986             } |  3983             } | 
|  3987             if (bDeleteChildren) { |  3984             if (bDeleteChildren) { | 
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  4027     FDE_XMLNODETYPE eXMLType = m_pXMLNode->GetType(); |  4024     FDE_XMLNODETYPE eXMLType = m_pXMLNode->GetType(); | 
|  4028     switch (eXMLType) { |  4025     switch (eXMLType) { | 
|  4029       case FDE_XMLNODE_Element: |  4026       case FDE_XMLNODE_Element: | 
|  4030         if (IsAttributeInXML()) { |  4027         if (IsAttributeInXML()) { | 
|  4031           ((IFDE_XMLElement*)m_pXMLNode) |  4028           ((IFDE_XMLElement*)m_pXMLNode) | 
|  4032               ->SetString(GetCData(XFA_ATTRIBUTE_QualifiedName), wsXMLValue); |  4029               ->SetString(GetCData(XFA_ATTRIBUTE_QualifiedName), wsXMLValue); | 
|  4033         } else { |  4030         } else { | 
|  4034           FX_BOOL bDeleteChildren = TRUE; |  4031           FX_BOOL bDeleteChildren = TRUE; | 
|  4035           if (GetPacketID() == XFA_XDPPACKET_Datasets) { |  4032           if (GetPacketID() == XFA_XDPPACKET_Datasets) { | 
|  4036             for (CXFA_Node* pChildDataNode = |  4033             for (CXFA_Node* pChildDataNode = | 
|  4037                      this->GetNodeItem(XFA_NODEITEM_FirstChild); |  4034                      GetNodeItem(XFA_NODEITEM_FirstChild); | 
|  4038                  pChildDataNode; pChildDataNode = pChildDataNode->GetNodeItem( |  4035                  pChildDataNode; pChildDataNode = pChildDataNode->GetNodeItem( | 
|  4039                                      XFA_NODEITEM_NextSibling)) { |  4036                                      XFA_NODEITEM_NextSibling)) { | 
|  4040               CXFA_NodeArray formNodes; |  4037               CXFA_NodeArray formNodes; | 
|  4041               if (pChildDataNode->GetBindItems(formNodes) > 0) { |  4038               if (pChildDataNode->GetBindItems(formNodes) > 0) { | 
|  4042                 bDeleteChildren = FALSE; |  4039                 bDeleteChildren = FALSE; | 
|  4043                 break; |  4040                 break; | 
|  4044               } |  4041               } | 
|  4045             } |  4042             } | 
|  4046           } |  4043           } | 
|  4047           if (bDeleteChildren) { |  4044           if (bDeleteChildren) { | 
| (...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  4484     case XFA_XDPPACKET_SourceSet: |  4481     case XFA_XDPPACKET_SourceSet: | 
|  4485       return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_SourceSet)); |  4482       return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_SourceSet)); | 
|  4486     case XFA_XDPPACKET_Xdc: |  4483     case XFA_XDPPACKET_Xdc: | 
|  4487       return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Xdc)); |  4484       return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Xdc)); | 
|  4488     default: |  4485     default: | 
|  4489       return this; |  4486       return this; | 
|  4490   } |  4487   } | 
|  4491 } |  4488 } | 
|  4492 FX_BOOL CXFA_Node::TryNamespace(CFX_WideString& wsNamespace) { |  4489 FX_BOOL CXFA_Node::TryNamespace(CFX_WideString& wsNamespace) { | 
|  4493   wsNamespace.Empty(); |  4490   wsNamespace.Empty(); | 
|  4494   if (this->GetObjectType() == XFA_OBJECTTYPE_ModelNode || |  4491   if (GetObjectType() == XFA_OBJECTTYPE_ModelNode || | 
|  4495       this->GetClassID() == XFA_ELEMENT_Packet) { |  4492       GetClassID() == XFA_ELEMENT_Packet) { | 
|  4496     IFDE_XMLNode* pXMLNode = this->GetXMLMappingNode(); |  4493     IFDE_XMLNode* pXMLNode = GetXMLMappingNode(); | 
|  4497     if (!pXMLNode || pXMLNode->GetType() != FDE_XMLNODE_Element) { |  4494     if (!pXMLNode || pXMLNode->GetType() != FDE_XMLNODE_Element) { | 
|  4498       return FALSE; |  4495       return FALSE; | 
|  4499     } |  4496     } | 
|  4500     ((IFDE_XMLElement*)pXMLNode)->GetNamespaceURI(wsNamespace); |  4497     ((IFDE_XMLElement*)pXMLNode)->GetNamespaceURI(wsNamespace); | 
|  4501     return TRUE; |  4498     return TRUE; | 
|  4502   } else if (this->GetPacketID() == XFA_XDPPACKET_Datasets) { |  4499   } else if (GetPacketID() == XFA_XDPPACKET_Datasets) { | 
|  4503     IFDE_XMLNode* pXMLNode = this->GetXMLMappingNode(); |  4500     IFDE_XMLNode* pXMLNode = GetXMLMappingNode(); | 
|  4504     if (!pXMLNode) { |  4501     if (!pXMLNode) { | 
|  4505       return FALSE; |  4502       return FALSE; | 
|  4506     } |  4503     } | 
|  4507     if (pXMLNode->GetType() != FDE_XMLNODE_Element) { |  4504     if (pXMLNode->GetType() != FDE_XMLNODE_Element) { | 
|  4508       return TRUE; |  4505       return TRUE; | 
|  4509     } |  4506     } | 
|  4510     if (this->GetClassID() == XFA_ELEMENT_DataValue && |  4507     if (GetClassID() == XFA_ELEMENT_DataValue && | 
|  4511         this->GetEnum(XFA_ATTRIBUTE_Contains) == XFA_ATTRIBUTEENUM_MetaData) { |  4508         GetEnum(XFA_ATTRIBUTE_Contains) == XFA_ATTRIBUTEENUM_MetaData) { | 
|  4512       return XFA_FDEExtension_ResolveNamespaceQualifier( |  4509       return XFA_FDEExtension_ResolveNamespaceQualifier( | 
|  4513           (IFDE_XMLElement*)pXMLNode, |  4510           (IFDE_XMLElement*)pXMLNode, GetCData(XFA_ATTRIBUTE_QualifiedName), | 
|  4514           this->GetCData(XFA_ATTRIBUTE_QualifiedName), wsNamespace); |  4511           wsNamespace); | 
|  4515     } |  4512     } | 
|  4516     ((IFDE_XMLElement*)pXMLNode)->GetNamespaceURI(wsNamespace); |  4513     ((IFDE_XMLElement*)pXMLNode)->GetNamespaceURI(wsNamespace); | 
|  4517     return TRUE; |  4514     return TRUE; | 
|  4518   } else { |  4515   } else { | 
|  4519     CXFA_Node* pModelNode = GetModelNode(); |  4516     CXFA_Node* pModelNode = GetModelNode(); | 
|  4520     return pModelNode->TryNamespace(wsNamespace); |  4517     return pModelNode->TryNamespace(wsNamespace); | 
|  4521   } |  4518   } | 
|  4522 } |  4519 } | 
|  4523 CXFA_Node* CXFA_Node::GetProperty(int32_t index, |  4520 CXFA_Node* CXFA_Node::GetProperty(int32_t index, | 
|  4524                                   XFA_ELEMENT eProperty, |  4521                                   XFA_ELEMENT eProperty, | 
| (...skipping 29 matching lines...) Expand all  Loading... | 
|  4554     } |  4551     } | 
|  4555   } |  4552   } | 
|  4556   IXFA_ObjFactory* pFactory = m_pDocument->GetParser()->GetFactory(); |  4553   IXFA_ObjFactory* pFactory = m_pDocument->GetParser()->GetFactory(); | 
|  4557   const XFA_PACKETINFO* pPacket = XFA_GetPacketByID(dwPacket); |  4554   const XFA_PACKETINFO* pPacket = XFA_GetPacketByID(dwPacket); | 
|  4558   CXFA_Node* pNewNode; |  4555   CXFA_Node* pNewNode; | 
|  4559   for (; iCount <= index; iCount++) { |  4556   for (; iCount <= index; iCount++) { | 
|  4560     pNewNode = pFactory->CreateNode(pPacket, eProperty); |  4557     pNewNode = pFactory->CreateNode(pPacket, eProperty); | 
|  4561     if (!pNewNode) { |  4558     if (!pNewNode) { | 
|  4562       return NULL; |  4559       return NULL; | 
|  4563     } |  4560     } | 
|  4564     this->InsertChild(pNewNode, NULL); |  4561     InsertChild(pNewNode, nullptr); | 
|  4565     pNewNode->SetFlag(XFA_NODEFLAG_Initialized); |  4562     pNewNode->SetFlag(XFA_NODEFLAG_Initialized); | 
|  4566   } |  4563   } | 
|  4567   return pNewNode; |  4564   return pNewNode; | 
|  4568 } |  4565 } | 
|  4569 int32_t CXFA_Node::CountChildren(XFA_ELEMENT eElement, FX_BOOL bOnlyChild) { |  4566 int32_t CXFA_Node::CountChildren(XFA_ELEMENT eElement, FX_BOOL bOnlyChild) { | 
|  4570   CXFA_Node* pNode = m_pChild; |  4567   CXFA_Node* pNode = m_pChild; | 
|  4571   int32_t iCount = 0; |  4568   int32_t iCount = 0; | 
|  4572   for (; pNode; pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { |  4569   for (; pNode; pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { | 
|  4573     if (pNode->GetClassID() == eElement || eElement == XFA_ELEMENT_UNKNOWN) { |  4570     if (pNode->GetClassID() == eElement || eElement == XFA_ELEMENT_UNKNOWN) { | 
|  4574       if (bOnlyChild) { |  4571       if (bOnlyChild) { | 
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  4739                    m_pXMLNode->GetType() == FDE_XMLNODE_Element); |  4736                    m_pXMLNode->GetType() == FDE_XMLNODE_Element); | 
|  4740       if (pNode->m_pXMLNode->GetType() == FDE_XMLNODE_Element) { |  4737       if (pNode->m_pXMLNode->GetType() == FDE_XMLNODE_Element) { | 
|  4741         IFDE_XMLElement* pXMLElement = (IFDE_XMLElement*)(pNode->m_pXMLNode); |  4738         IFDE_XMLElement* pXMLElement = (IFDE_XMLElement*)(pNode->m_pXMLNode); | 
|  4742         CFX_WideStringC wsAttributeName = |  4739         CFX_WideStringC wsAttributeName = | 
|  4743             pNode->GetCData(XFA_ATTRIBUTE_QualifiedName); |  4740             pNode->GetCData(XFA_ATTRIBUTE_QualifiedName); | 
|  4744         pXMLElement->RemoveAttribute(wsAttributeName.GetPtr()); |  4741         pXMLElement->RemoveAttribute(wsAttributeName.GetPtr()); | 
|  4745       } |  4742       } | 
|  4746       CFX_WideString wsName; |  4743       CFX_WideString wsName; | 
|  4747       pNode->GetAttribute(XFA_ATTRIBUTE_Name, wsName, FALSE); |  4744       pNode->GetAttribute(XFA_ATTRIBUTE_Name, wsName, FALSE); | 
|  4748       IFDE_XMLElement* pNewXMLElement = IFDE_XMLElement::Create(wsName); |  4745       IFDE_XMLElement* pNewXMLElement = IFDE_XMLElement::Create(wsName); | 
|  4749       CFX_WideStringC wsValue = this->GetCData(XFA_ATTRIBUTE_Value); |  4746       CFX_WideStringC wsValue = GetCData(XFA_ATTRIBUTE_Value); | 
|  4750       if (!wsValue.IsEmpty()) { |  4747       if (!wsValue.IsEmpty()) { | 
|  4751         pNewXMLElement->SetTextData(wsValue); |  4748         pNewXMLElement->SetTextData(wsValue); | 
|  4752       } |  4749       } | 
|  4753       pNode->m_pXMLNode = pNewXMLElement; |  4750       pNode->m_pXMLNode = pNewXMLElement; | 
|  4754       pNode->SetEnum(XFA_ATTRIBUTE_Contains, XFA_ATTRIBUTEENUM_Unknown); |  4751       pNode->SetEnum(XFA_ATTRIBUTE_Contains, XFA_ATTRIBUTEENUM_Unknown); | 
|  4755     } else { |  4752     } else { | 
|  4756       m_pXMLNode->RemoveChildNode(pNode->m_pXMLNode); |  4753       m_pXMLNode->RemoveChildNode(pNode->m_pXMLNode); | 
|  4757     } |  4754     } | 
|  4758     pNode->SetFlag(XFA_NODEFLAG_OwnXMLNode, TRUE, FALSE); |  4755     pNode->SetFlag(XFA_NODEFLAG_OwnXMLNode, TRUE, FALSE); | 
|  4759   } |  4756   } | 
| (...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  5010   return m_pXMLNode && (GetPacketID() == XFA_XDPPACKET_Datasets || |  5007   return m_pXMLNode && (GetPacketID() == XFA_XDPPACKET_Datasets || | 
|  5011                         GetClassID() == XFA_ELEMENT_Xfa); |  5008                         GetClassID() == XFA_ELEMENT_Xfa); | 
|  5012 } |  5009 } | 
|  5013 XFA_LPMAPMODULEDATA CXFA_Node::GetMapModuleData(FX_BOOL bCreateNew) { |  5010 XFA_LPMAPMODULEDATA CXFA_Node::GetMapModuleData(FX_BOOL bCreateNew) { | 
|  5014   if (!m_pMapModuleData && bCreateNew) { |  5011   if (!m_pMapModuleData && bCreateNew) { | 
|  5015     m_pMapModuleData = new XFA_MAPMODULEDATA; |  5012     m_pMapModuleData = new XFA_MAPMODULEDATA; | 
|  5016   } |  5013   } | 
|  5017   return m_pMapModuleData; |  5014   return m_pMapModuleData; | 
|  5018 } |  5015 } | 
|  5019 void CXFA_Node::SetMapModuleValue(void* pKey, void* pValue) { |  5016 void CXFA_Node::SetMapModuleValue(void* pKey, void* pValue) { | 
|  5020   XFA_LPMAPMODULEDATA pMoudle = this->GetMapModuleData(TRUE); |  5017   XFA_LPMAPMODULEDATA pModule = GetMapModuleData(TRUE); | 
|  5021   if (!pMoudle) { |  5018   if (pModule) | 
|  5022     return; |  5019     pModule->m_ValueMap.SetAt(pKey, pValue); | 
|  5023   } |  | 
|  5024   pMoudle->m_ValueMap.SetAt(pKey, pValue); |  | 
|  5025 } |  5020 } | 
|  5026 FX_BOOL CXFA_Node::GetMapModuleValue(void* pKey, void*& pValue) { |  5021 FX_BOOL CXFA_Node::GetMapModuleValue(void* pKey, void*& pValue) { | 
|  5027   CXFA_Node* pNode = this; |  5022   CXFA_Node* pNode = this; | 
|  5028   while (pNode) { |  5023   while (pNode) { | 
|  5029     XFA_LPMAPMODULEDATA pMoudle = pNode->GetMapModuleData(FALSE); |  5024     XFA_LPMAPMODULEDATA pModule = pNode->GetMapModuleData(FALSE); | 
|  5030     if (pMoudle && pMoudle->m_ValueMap.Lookup(pKey, pValue)) { |  5025     if (pModule && pModule->m_ValueMap.Lookup(pKey, pValue)) { | 
|  5031       return TRUE; |  5026       return TRUE; | 
|  5032     } |  5027     } | 
|  5033     pNode = pNode->GetPacketID() != XFA_XDPPACKET_Datasets |  5028     pNode = pNode->GetPacketID() != XFA_XDPPACKET_Datasets | 
|  5034                 ? pNode->GetTemplateNode() |  5029                 ? pNode->GetTemplateNode() | 
|  5035                 : NULL; |  5030                 : NULL; | 
|  5036   } |  5031   } | 
|  5037   return FALSE; |  5032   return FALSE; | 
|  5038 } |  5033 } | 
|  5039 void CXFA_Node::SetMapModuleString(void* pKey, const CFX_WideStringC& wsValue) { |  5034 void CXFA_Node::SetMapModuleString(void* pKey, const CFX_WideStringC& wsValue) { | 
|  5040   SetMapModuleBuffer(pKey, (void*)wsValue.GetPtr(), |  5035   SetMapModuleBuffer(pKey, (void*)wsValue.GetPtr(), | 
|  5041                      wsValue.GetLength() * sizeof(FX_WCHAR)); |  5036                      wsValue.GetLength() * sizeof(FX_WCHAR)); | 
|  5042 } |  5037 } | 
|  5043 FX_BOOL CXFA_Node::GetMapModuleString(void* pKey, CFX_WideStringC& wsValue) { |  5038 FX_BOOL CXFA_Node::GetMapModuleString(void* pKey, CFX_WideStringC& wsValue) { | 
|  5044   void* pValue; |  5039   void* pValue; | 
|  5045   int32_t iBytes; |  5040   int32_t iBytes; | 
|  5046   if (!GetMapModuleBuffer(pKey, pValue, iBytes)) { |  5041   if (!GetMapModuleBuffer(pKey, pValue, iBytes)) { | 
|  5047     return FALSE; |  5042     return FALSE; | 
|  5048   } |  5043   } | 
|  5049   wsValue = CFX_WideStringC((const FX_WCHAR*)pValue, iBytes / sizeof(FX_WCHAR)); |  5044   wsValue = CFX_WideStringC((const FX_WCHAR*)pValue, iBytes / sizeof(FX_WCHAR)); | 
|  5050   return TRUE; |  5045   return TRUE; | 
|  5051 } |  5046 } | 
|  5052 void CXFA_Node::SetMapModuleBuffer( |  5047 void CXFA_Node::SetMapModuleBuffer( | 
|  5053     void* pKey, |  5048     void* pKey, | 
|  5054     void* pValue, |  5049     void* pValue, | 
|  5055     int32_t iBytes, |  5050     int32_t iBytes, | 
|  5056     XFA_MAPDATABLOCKCALLBACKINFO* pCallbackInfo) { |  5051     XFA_MAPDATABLOCKCALLBACKINFO* pCallbackInfo) { | 
|  5057   XFA_LPMAPMODULEDATA pMoudle = this->GetMapModuleData(TRUE); |  5052   XFA_LPMAPMODULEDATA pModule = GetMapModuleData(TRUE); | 
|  5058   if (!pMoudle) { |  5053   if (!pModule) | 
|  5059     return; |  5054     return; | 
|  5060   } |  5055  | 
|  5061   XFA_LPMAPDATABLOCK& pBuffer = pMoudle->m_BufferMap[pKey]; |  5056   XFA_LPMAPDATABLOCK& pBuffer = pModule->m_BufferMap[pKey]; | 
|  5062   if (pBuffer == NULL) { |  5057   if (pBuffer == NULL) { | 
|  5063     pBuffer = (XFA_LPMAPDATABLOCK)FX_Alloc(uint8_t, |  5058     pBuffer = (XFA_LPMAPDATABLOCK)FX_Alloc(uint8_t, | 
|  5064                                            sizeof(XFA_MAPDATABLOCK) + iBytes); |  5059                                            sizeof(XFA_MAPDATABLOCK) + iBytes); | 
|  5065   } else if (pBuffer->iBytes != iBytes) { |  5060   } else if (pBuffer->iBytes != iBytes) { | 
|  5066     if (pBuffer->pCallbackInfo && pBuffer->pCallbackInfo->pFree) { |  5061     if (pBuffer->pCallbackInfo && pBuffer->pCallbackInfo->pFree) { | 
|  5067       pBuffer->pCallbackInfo->pFree(*(void**)pBuffer->GetData()); |  5062       pBuffer->pCallbackInfo->pFree(*(void**)pBuffer->GetData()); | 
|  5068     } |  5063     } | 
|  5069     pBuffer = (XFA_LPMAPDATABLOCK)FX_Realloc(uint8_t, pBuffer, |  5064     pBuffer = (XFA_LPMAPDATABLOCK)FX_Realloc(uint8_t, pBuffer, | 
|  5070                                              sizeof(XFA_MAPDATABLOCK) + iBytes); |  5065                                              sizeof(XFA_MAPDATABLOCK) + iBytes); | 
|  5071   } else if (pBuffer->pCallbackInfo && pBuffer->pCallbackInfo->pFree) { |  5066   } else if (pBuffer->pCallbackInfo && pBuffer->pCallbackInfo->pFree) { | 
|  5072     pBuffer->pCallbackInfo->pFree(*(void**)pBuffer->GetData()); |  5067     pBuffer->pCallbackInfo->pFree(*(void**)pBuffer->GetData()); | 
|  5073   } |  5068   } | 
|  5074   if (pBuffer == NULL) { |  5069   if (pBuffer == NULL) { | 
|  5075     return; |  5070     return; | 
|  5076   } |  5071   } | 
|  5077   pBuffer->pCallbackInfo = pCallbackInfo; |  5072   pBuffer->pCallbackInfo = pCallbackInfo; | 
|  5078   pBuffer->iBytes = iBytes; |  5073   pBuffer->iBytes = iBytes; | 
|  5079   FXSYS_memcpy(pBuffer->GetData(), pValue, iBytes); |  5074   FXSYS_memcpy(pBuffer->GetData(), pValue, iBytes); | 
|  5080 } |  5075 } | 
|  5081 FX_BOOL CXFA_Node::GetMapModuleBuffer(void* pKey, |  5076 FX_BOOL CXFA_Node::GetMapModuleBuffer(void* pKey, | 
|  5082                                       void*& pValue, |  5077                                       void*& pValue, | 
|  5083                                       int32_t& iBytes, |  5078                                       int32_t& iBytes, | 
|  5084                                       FX_BOOL bProtoAlso) { |  5079                                       FX_BOOL bProtoAlso) { | 
|  5085   XFA_LPMAPDATABLOCK pBuffer = NULL; |  5080   XFA_LPMAPDATABLOCK pBuffer = NULL; | 
|  5086   CXFA_Node* pNode = this; |  5081   CXFA_Node* pNode = this; | 
|  5087   while (pNode) { |  5082   while (pNode) { | 
|  5088     XFA_LPMAPMODULEDATA pMoudle = pNode->GetMapModuleData(FALSE); |  5083     XFA_LPMAPMODULEDATA pModule = pNode->GetMapModuleData(FALSE); | 
|  5089     if (pMoudle && pMoudle->m_BufferMap.Lookup(pKey, pBuffer)) { |  5084     if (pModule && pModule->m_BufferMap.Lookup(pKey, pBuffer)) { | 
|  5090       break; |  5085       break; | 
|  5091     } |  5086     } | 
|  5092     pNode = (bProtoAlso && pNode->GetPacketID() != XFA_XDPPACKET_Datasets) |  5087     pNode = (bProtoAlso && pNode->GetPacketID() != XFA_XDPPACKET_Datasets) | 
|  5093                 ? pNode->GetTemplateNode() |  5088                 ? pNode->GetTemplateNode() | 
|  5094                 : NULL; |  5089                 : NULL; | 
|  5095   } |  5090   } | 
|  5096   if (pBuffer == NULL) { |  5091   if (pBuffer == NULL) { | 
|  5097     return FALSE; |  5092     return FALSE; | 
|  5098   } |  5093   } | 
|  5099   pValue = pBuffer->GetData(); |  5094   pValue = pBuffer->GetData(); | 
|  5100   iBytes = pBuffer->iBytes; |  5095   iBytes = pBuffer->iBytes; | 
|  5101   return TRUE; |  5096   return TRUE; | 
|  5102 } |  5097 } | 
|  5103 FX_BOOL CXFA_Node::HasMapModuleKey(void* pKey, FX_BOOL bProtoAlso) { |  5098 FX_BOOL CXFA_Node::HasMapModuleKey(void* pKey, FX_BOOL bProtoAlso) { | 
|  5104   CXFA_Node* pNode = this; |  5099   CXFA_Node* pNode = this; | 
|  5105   while (pNode) { |  5100   while (pNode) { | 
|  5106     void* pVal; |  5101     void* pVal; | 
|  5107     XFA_LPMAPMODULEDATA pMoudle = pNode->GetMapModuleData(FALSE); |  5102     XFA_LPMAPMODULEDATA pModule = pNode->GetMapModuleData(FALSE); | 
|  5108     if (pMoudle && |  5103     if (pModule && | 
|  5109         (pMoudle->m_ValueMap.Lookup(pKey, pVal) || |  5104         (pModule->m_ValueMap.Lookup(pKey, pVal) || | 
|  5110          pMoudle->m_BufferMap.Lookup(pKey, (XFA_LPMAPDATABLOCK&)pVal))) { |  5105          pModule->m_BufferMap.Lookup(pKey, (XFA_LPMAPDATABLOCK&)pVal))) { | 
|  5111       return TRUE; |  5106       return TRUE; | 
|  5112     } |  5107     } | 
|  5113     pNode = (bProtoAlso && pNode->GetPacketID() != XFA_XDPPACKET_Datasets) |  5108     pNode = (bProtoAlso && pNode->GetPacketID() != XFA_XDPPACKET_Datasets) | 
|  5114                 ? pNode->GetTemplateNode() |  5109                 ? pNode->GetTemplateNode() | 
|  5115                 : NULL; |  5110                 : NULL; | 
|  5116   } |  5111   } | 
|  5117   return FALSE; |  5112   return FALSE; | 
|  5118 } |  5113 } | 
|  5119 void CXFA_Node::RemoveMapModuleKey(void* pKey) { |  5114 void CXFA_Node::RemoveMapModuleKey(void* pKey) { | 
|  5120   XFA_LPMAPMODULEDATA pMoudle = this->GetMapModuleData(FALSE); |  5115   XFA_LPMAPMODULEDATA pModule = GetMapModuleData(FALSE); | 
|  5121   if (!pMoudle) { |  5116   if (!pModule) | 
|  5122     return; |  5117     return; | 
|  5123   } |  5118  | 
|  5124   if (pKey) { |  5119   if (pKey) { | 
|  5125     XFA_LPMAPDATABLOCK pBuffer = NULL; |  5120     XFA_LPMAPDATABLOCK pBuffer = NULL; | 
|  5126     pMoudle->m_BufferMap.Lookup(pKey, pBuffer); |  5121     pModule->m_BufferMap.Lookup(pKey, pBuffer); | 
|  5127     if (pBuffer) { |  5122     if (pBuffer) { | 
|  5128       if (pBuffer->pCallbackInfo && pBuffer->pCallbackInfo->pFree) { |  5123       if (pBuffer->pCallbackInfo && pBuffer->pCallbackInfo->pFree) { | 
|  5129         pBuffer->pCallbackInfo->pFree(*(void**)pBuffer->GetData()); |  5124         pBuffer->pCallbackInfo->pFree(*(void**)pBuffer->GetData()); | 
|  5130       } |  5125       } | 
|  5131       FX_Free(pBuffer); |  5126       FX_Free(pBuffer); | 
|  5132     } |  5127     } | 
|  5133     pMoudle->m_BufferMap.RemoveKey(pKey); |  5128     pModule->m_BufferMap.RemoveKey(pKey); | 
|  5134     pMoudle->m_ValueMap.RemoveKey(pKey); |  5129     pModule->m_ValueMap.RemoveKey(pKey); | 
|  5135   } else { |  5130   } else { | 
|  5136     XFA_LPMAPDATABLOCK pBuffer; |  5131     XFA_LPMAPDATABLOCK pBuffer; | 
|  5137     FX_POSITION posBuffer = pMoudle->m_BufferMap.GetStartPosition(); |  5132     FX_POSITION posBuffer = pModule->m_BufferMap.GetStartPosition(); | 
|  5138     while (posBuffer) { |  5133     while (posBuffer) { | 
|  5139       pMoudle->m_BufferMap.GetNextAssoc(posBuffer, pKey, pBuffer); |  5134       pModule->m_BufferMap.GetNextAssoc(posBuffer, pKey, pBuffer); | 
|  5140       if (pBuffer) { |  5135       if (pBuffer) { | 
|  5141         if (pBuffer->pCallbackInfo && pBuffer->pCallbackInfo->pFree) { |  5136         if (pBuffer->pCallbackInfo && pBuffer->pCallbackInfo->pFree) { | 
|  5142           pBuffer->pCallbackInfo->pFree(*(void**)pBuffer->GetData()); |  5137           pBuffer->pCallbackInfo->pFree(*(void**)pBuffer->GetData()); | 
|  5143         } |  5138         } | 
|  5144         FX_Free(pBuffer); |  5139         FX_Free(pBuffer); | 
|  5145       } |  5140       } | 
|  5146     } |  5141     } | 
|  5147     pMoudle->m_BufferMap.RemoveAll(); |  5142     pModule->m_BufferMap.RemoveAll(); | 
|  5148     pMoudle->m_ValueMap.RemoveAll(); |  5143     pModule->m_ValueMap.RemoveAll(); | 
|  5149     if (pMoudle) { |  5144     delete pModule; | 
|  5150       delete pMoudle; |  | 
|  5151       pMoudle = NULL; |  | 
|  5152     } |  | 
|  5153   } |  5145   } | 
|  5154 } |  5146 } | 
|  5155 void CXFA_Node::MergeAllData(void* pDstModule, FX_BOOL bUseSrcAttr) { |  5147 void CXFA_Node::MergeAllData(void* pDstModule, FX_BOOL bUseSrcAttr) { | 
|  5156   XFA_LPMAPMODULEDATA pDstModuleData = |  5148   XFA_LPMAPMODULEDATA pDstModuleData = | 
|  5157       static_cast<CXFA_Node*>(pDstModule)->GetMapModuleData(TRUE); |  5149       static_cast<CXFA_Node*>(pDstModule)->GetMapModuleData(TRUE); | 
|  5158   if (!pDstModuleData) { |  5150   if (!pDstModuleData) { | 
|  5159     return; |  5151     return; | 
|  5160   } |  5152   } | 
|  5161   XFA_LPMAPMODULEDATA pSrcModuleData = this->GetMapModuleData(FALSE); |  5153   XFA_LPMAPMODULEDATA pSrcModuleData = GetMapModuleData(FALSE); | 
|  5162   if (!pSrcModuleData) { |  5154   if (!pSrcModuleData) { | 
|  5163     return; |  5155     return; | 
|  5164   } |  5156   } | 
|  5165   FX_POSITION psValue = pSrcModuleData->m_ValueMap.GetStartPosition(); |  5157   FX_POSITION psValue = pSrcModuleData->m_ValueMap.GetStartPosition(); | 
|  5166   while (psValue) { |  5158   while (psValue) { | 
|  5167     void* pKey; |  5159     void* pKey; | 
|  5168     void* pValue; |  5160     void* pValue; | 
|  5169     pSrcModuleData->m_ValueMap.GetNextAssoc(psValue, pKey, pValue); |  5161     pSrcModuleData->m_ValueMap.GetNextAssoc(psValue, pKey, pValue); | 
|  5170     if (bUseSrcAttr || !pDstModuleData->m_ValueMap.GetValueAt(pKey)) { |  5162     if (bUseSrcAttr || !pDstModuleData->m_ValueMap.GetValueAt(pKey)) { | 
|  5171       pDstModuleData->m_ValueMap.SetAt(pKey, pValue); |  5163       pDstModuleData->m_ValueMap.SetAt(pKey, pValue); | 
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  5212   } |  5204   } | 
|  5213 } |  5205 } | 
|  5214 void CXFA_Node::MoveBufferMapData(CXFA_Node* pDstModule, void* pKey) { |  5206 void CXFA_Node::MoveBufferMapData(CXFA_Node* pDstModule, void* pKey) { | 
|  5215   if (!pDstModule) { |  5207   if (!pDstModule) { | 
|  5216     return; |  5208     return; | 
|  5217   } |  5209   } | 
|  5218   FX_BOOL bNeedMove = TRUE; |  5210   FX_BOOL bNeedMove = TRUE; | 
|  5219   if (!pKey) { |  5211   if (!pKey) { | 
|  5220     bNeedMove = FALSE; |  5212     bNeedMove = FALSE; | 
|  5221   } |  5213   } | 
|  5222   if (pDstModule->GetClassID() != this->GetClassID()) { |  5214   if (pDstModule->GetClassID() != GetClassID()) { | 
|  5223     bNeedMove = FALSE; |  5215     bNeedMove = FALSE; | 
|  5224   } |  5216   } | 
|  5225   XFA_LPMAPMODULEDATA pSrcModuleData = NULL; |  5217   XFA_LPMAPMODULEDATA pSrcModuleData = NULL; | 
|  5226   XFA_LPMAPMODULEDATA pDstModuleData = NULL; |  5218   XFA_LPMAPMODULEDATA pDstModuleData = NULL; | 
|  5227   if (bNeedMove) { |  5219   if (bNeedMove) { | 
|  5228     pSrcModuleData = this->GetMapModuleData(FALSE); |  5220     pSrcModuleData = GetMapModuleData(FALSE); | 
|  5229     if (!pSrcModuleData) { |  5221     if (!pSrcModuleData) { | 
|  5230       bNeedMove = FALSE; |  5222       bNeedMove = FALSE; | 
|  5231     } |  5223     } | 
|  5232     pDstModuleData = pDstModule->GetMapModuleData(TRUE); |  5224     pDstModuleData = pDstModule->GetMapModuleData(TRUE); | 
|  5233     if (!pDstModuleData) { |  5225     if (!pDstModuleData) { | 
|  5234       bNeedMove = FALSE; |  5226       bNeedMove = FALSE; | 
|  5235     } |  5227     } | 
|  5236   } |  5228   } | 
|  5237   if (bNeedMove) { |  5229   if (bNeedMove) { | 
|  5238     void* pBufferBlockData = pSrcModuleData->m_BufferMap.GetValueAt(pKey); |  5230     void* pBufferBlockData = pSrcModuleData->m_BufferMap.GetValueAt(pKey); | 
| (...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  5438   return m_pAttachNode->InsertChild(pNewNode, pBeforeNode); |  5430   return m_pAttachNode->InsertChild(pNewNode, pBeforeNode); | 
|  5439 } |  5431 } | 
|  5440 FX_BOOL CXFA_AttachNodeList::Remove(CXFA_Node* pNode) { |  5432 FX_BOOL CXFA_AttachNodeList::Remove(CXFA_Node* pNode) { | 
|  5441   return m_pAttachNode->RemoveChild(pNode); |  5433   return m_pAttachNode->RemoveChild(pNode); | 
|  5442 } |  5434 } | 
|  5443 CXFA_Node* CXFA_AttachNodeList::Item(int32_t iIndex) { |  5435 CXFA_Node* CXFA_AttachNodeList::Item(int32_t iIndex) { | 
|  5444   return m_pAttachNode->GetChild( |  5436   return m_pAttachNode->GetChild( | 
|  5445       iIndex, XFA_ELEMENT_UNKNOWN, |  5437       iIndex, XFA_ELEMENT_UNKNOWN, | 
|  5446       m_pAttachNode->GetClassID() == XFA_ELEMENT_Subform); |  5438       m_pAttachNode->GetClassID() == XFA_ELEMENT_Subform); | 
|  5447 } |  5439 } | 
| OLD | NEW |