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/fxfa/parser/xfa_script_nodehelper.h" | 7 #include "xfa/fxfa/parser/xfa_script_nodehelper.h" |
8 | 8 |
9 #include "core/fxcrt/include/fx_ext.h" | 9 #include "core/fxcrt/include/fx_ext.h" |
10 #include "xfa/fxfa/fm2js/xfa_fm2jsapi.h" | 10 #include "xfa/fxfa/fm2js/xfa_fm2jsapi.h" |
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
361 pScriptContext->GetDocument()->GetXFAObject(XFA_HASHCODE_Datasets)); | 361 pScriptContext->GetDocument()->GetXFAObject(XFA_HASHCODE_Datasets)); |
362 } | 362 } |
363 if (wsName.GetAt(0) == '#') { | 363 if (wsName.GetAt(0) == '#') { |
364 bIsClassName = TRUE; | 364 bIsClassName = TRUE; |
365 wsName = wsName.Right(wsName.GetLength() - 1); | 365 wsName = wsName.Right(wsName.GetLength() - 1); |
366 } | 366 } |
367 if (m_iCreateCount == 0) { | 367 if (m_iCreateCount == 0) { |
368 XFA_CreateNode_ForCondition(wsCondition); | 368 XFA_CreateNode_ForCondition(wsCondition); |
369 } | 369 } |
370 if (bIsClassName) { | 370 if (bIsClassName) { |
371 const XFA_ELEMENTINFO* lpElement = XFA_GetElementByName(wsName); | 371 const XFA_ELEMENTINFO* lpElement = |
| 372 XFA_GetElementByName(wsName.AsWideStringC()); |
372 if (lpElement == NULL) { | 373 if (lpElement == NULL) { |
373 return FALSE; | 374 return FALSE; |
374 } | 375 } |
375 for (int32_t iIndex = 0; iIndex < m_iCreateCount; iIndex++) { | 376 for (int32_t iIndex = 0; iIndex < m_iCreateCount; iIndex++) { |
376 CXFA_Node* pNewNode = | 377 CXFA_Node* pNewNode = |
377 m_pCreateParent->CreateSamePacketNode(lpElement->eName); | 378 m_pCreateParent->CreateSamePacketNode(lpElement->eName); |
378 if (pNewNode) { | 379 if (pNewNode) { |
379 m_pCreateParent->InsertChild(pNewNode); | 380 m_pCreateParent->InsertChild(pNewNode); |
380 if (iIndex == m_iCreateCount - 1) { | 381 if (iIndex == m_iCreateCount - 1) { |
381 m_pCreateParent = pNewNode; | 382 m_pCreateParent = pNewNode; |
382 } | 383 } |
383 bResult = TRUE; | 384 bResult = TRUE; |
384 } | 385 } |
385 } | 386 } |
386 } else { | 387 } else { |
387 XFA_ELEMENT eClassType = XFA_ELEMENT_DataGroup; | 388 XFA_ELEMENT eClassType = XFA_ELEMENT_DataGroup; |
388 if (bLastNode) { | 389 if (bLastNode) { |
389 eClassType = m_eLastCreateType; | 390 eClassType = m_eLastCreateType; |
390 } | 391 } |
391 for (int32_t iIndex = 0; iIndex < m_iCreateCount; iIndex++) { | 392 for (int32_t iIndex = 0; iIndex < m_iCreateCount; iIndex++) { |
392 CXFA_Node* pNewNode = m_pCreateParent->CreateSamePacketNode(eClassType); | 393 CXFA_Node* pNewNode = m_pCreateParent->CreateSamePacketNode(eClassType); |
393 if (pNewNode) { | 394 if (pNewNode) { |
394 pNewNode->SetAttribute(XFA_ATTRIBUTE_Name, wsName); | 395 pNewNode->SetAttribute(XFA_ATTRIBUTE_Name, wsName.AsWideStringC()); |
395 pNewNode->CreateXMLMappingNode(); | 396 pNewNode->CreateXMLMappingNode(); |
396 m_pCreateParent->InsertChild(pNewNode); | 397 m_pCreateParent->InsertChild(pNewNode); |
397 if (iIndex == m_iCreateCount - 1) { | 398 if (iIndex == m_iCreateCount - 1) { |
398 m_pCreateParent = pNewNode; | 399 m_pCreateParent = pNewNode; |
399 } | 400 } |
400 bResult = TRUE; | 401 bResult = TRUE; |
401 } | 402 } |
402 } | 403 } |
403 } | 404 } |
404 if (!bResult) { | 405 if (!bResult) { |
(...skipping 15 matching lines...) Expand all Loading... |
420 m_eLastCreateType = XFA_ELEMENT_DataValue; | 421 m_eLastCreateType = XFA_ELEMENT_DataValue; |
421 } | 422 } |
422 } | 423 } |
423 FX_BOOL CXFA_NodeHelper::XFA_NodeIsProperty(CXFA_Node* refNode) { | 424 FX_BOOL CXFA_NodeHelper::XFA_NodeIsProperty(CXFA_Node* refNode) { |
424 CXFA_Node* parent = | 425 CXFA_Node* parent = |
425 XFA_ResolveNodes_GetParent(refNode, XFA_LOGIC_NoTransparent); | 426 XFA_ResolveNodes_GetParent(refNode, XFA_LOGIC_NoTransparent); |
426 return parent && refNode && | 427 return parent && refNode && |
427 XFA_GetPropertyOfElement(parent->GetClassID(), refNode->GetClassID(), | 428 XFA_GetPropertyOfElement(parent->GetClassID(), refNode->GetClassID(), |
428 XFA_XDPPACKET_UNKNOWN); | 429 XFA_XDPPACKET_UNKNOWN); |
429 } | 430 } |
OLD | NEW |