Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(66)

Side by Side Diff: xfa/fxfa/parser/xfa_document_datamerger_imp.cpp

Issue 2093663002: Cleanup some variable namings. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: fix headers Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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_document_datamerger_imp.h" 7 #include "xfa/fxfa/parser/xfa_document_datamerger_imp.h"
8 8
9 #include "core/fxcrt/include/fx_ext.h" 9 #include "core/fxcrt/include/fx_ext.h"
10 #include "xfa/fde/xml/fde_xml_imp.h" 10 #include "xfa/fde/xml/fde_xml_imp.h"
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 ASSERT(FALSE); 97 ASSERT(FALSE);
98 break; 98 break;
99 } 99 }
100 return TRUE; 100 return TRUE;
101 } 101 }
102 static void XFA_DataMerge_CreateDataBinding(CXFA_Node* pFormNode, 102 static void XFA_DataMerge_CreateDataBinding(CXFA_Node* pFormNode,
103 CXFA_Node* pDataNode, 103 CXFA_Node* pDataNode,
104 FX_BOOL bDataToForm = TRUE) { 104 FX_BOOL bDataToForm = TRUE) {
105 pFormNode->SetObject(XFA_ATTRIBUTE_BindingNode, pDataNode); 105 pFormNode->SetObject(XFA_ATTRIBUTE_BindingNode, pDataNode);
106 pDataNode->AddBindItem(pFormNode); 106 pDataNode->AddBindItem(pFormNode);
107 XFA_Element eClass = pFormNode->GetElementType(); 107 XFA_Element eType = pFormNode->GetElementType();
108 if (eClass != XFA_Element::Field && eClass != XFA_Element::ExclGroup) { 108 if (eType != XFA_Element::Field && eType != XFA_Element::ExclGroup) {
109 return; 109 return;
110 } 110 }
111 CXFA_WidgetData* pWidgetData = pFormNode->GetWidgetData(); 111 CXFA_WidgetData* pWidgetData = pFormNode->GetWidgetData();
112 ASSERT(pWidgetData); 112 ASSERT(pWidgetData);
113 XFA_Element eUIType = pWidgetData->GetUIType(); 113 XFA_Element eUIType = pWidgetData->GetUIType();
114 CXFA_Value defValue(pFormNode->GetProperty(0, XFA_Element::Value)); 114 CXFA_Value defValue(pFormNode->GetProperty(0, XFA_Element::Value));
115 if (!bDataToForm) { 115 if (!bDataToForm) {
116 CFX_WideString wsValue; 116 CFX_WideString wsValue;
117 CFX_WideString wsFormatedValue; 117 CFX_WideString wsFormatedValue;
118 switch (eUIType) { 118 switch (eUIType) {
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 CXFA_Object* pObject = (rs.nodes.GetSize() > 0) ? rs.nodes[0] : NULL; 458 CXFA_Object* pObject = (rs.nodes.GetSize() > 0) ? rs.nodes[0] : NULL;
459 CXFA_Node* pNode = ToNode(pObject); 459 CXFA_Node* pNode = ToNode(pObject);
460 if (!bForceBind && pNode && pNode->HasBindItem()) { 460 if (!bForceBind && pNode && pNode->HasBindItem()) {
461 pNode = NULL; 461 pNode = NULL;
462 } 462 }
463 return pNode; 463 return pNode;
464 } 464 }
465 return NULL; 465 return NULL;
466 } 466 }
467 CXFA_Node* XFA_DataMerge_FindFormDOMInstance(CXFA_Document* pDocument, 467 CXFA_Node* XFA_DataMerge_FindFormDOMInstance(CXFA_Document* pDocument,
468 XFA_Element eClassID, 468 XFA_Element eType,
469 uint32_t dwNameHash, 469 uint32_t dwNameHash,
470 CXFA_Node* pFormParent) { 470 CXFA_Node* pFormParent) {
471 CXFA_Node* pFormChild = pFormParent->GetNodeItem(XFA_NODEITEM_FirstChild); 471 CXFA_Node* pFormChild = pFormParent->GetNodeItem(XFA_NODEITEM_FirstChild);
472 for (; pFormChild; 472 for (; pFormChild;
473 pFormChild = pFormChild->GetNodeItem(XFA_NODEITEM_NextSibling)) { 473 pFormChild = pFormChild->GetNodeItem(XFA_NODEITEM_NextSibling)) {
474 if (pFormChild->GetElementType() == eClassID && 474 if (pFormChild->GetElementType() == eType &&
475 pFormChild->GetNameHash() == dwNameHash && pFormChild->IsUnusedNode()) { 475 pFormChild->GetNameHash() == dwNameHash && pFormChild->IsUnusedNode()) {
476 return pFormChild; 476 return pFormChild;
477 } 477 }
478 } 478 }
479 return NULL; 479 return NULL;
480 } 480 }
481 static FX_BOOL XFA_NeedGenerateForm(CXFA_Node* pTemplateChild, 481 static FX_BOOL XFA_NeedGenerateForm(CXFA_Node* pTemplateChild,
482 FX_BOOL bUseInstanceManager = TRUE) { 482 FX_BOOL bUseInstanceManager = TRUE) {
483 XFA_Element eType = pTemplateChild->GetElementType(); 483 XFA_Element eType = pTemplateChild->GetElementType();
484 if (eType == XFA_Element::Variables) { 484 if (eType == XFA_Element::Variables) {
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
743 rgRecords.Copy(rgResultRecord); 743 rgRecords.Copy(rgResultRecord);
744 } 744 }
745 } 745 }
746 static CXFA_Node* XFA_DataMerge_CopyContainer_SubformSet( 746 static CXFA_Node* XFA_DataMerge_CopyContainer_SubformSet(
747 CXFA_Document* pDocument, 747 CXFA_Document* pDocument,
748 CXFA_Node* pTemplateNode, 748 CXFA_Node* pTemplateNode,
749 CXFA_Node* pFormParentNode, 749 CXFA_Node* pFormParentNode,
750 CXFA_Node* pDataScope, 750 CXFA_Node* pDataScope,
751 FX_BOOL bOneInstance, 751 FX_BOOL bOneInstance,
752 FX_BOOL bDataMerge) { 752 FX_BOOL bDataMerge) {
753 XFA_Element eElement = pTemplateNode->GetElementType(); 753 XFA_Element eType = pTemplateNode->GetElementType();
754 CXFA_Node* pOccurNode = NULL; 754 CXFA_Node* pOccurNode = NULL;
755 CXFA_Node* pFirstInstance = NULL; 755 CXFA_Node* pFirstInstance = NULL;
756 FX_BOOL bUseInstanceManager = 756 FX_BOOL bUseInstanceManager =
757 pFormParentNode->GetElementType() != XFA_Element::Area; 757 pFormParentNode->GetElementType() != XFA_Element::Area;
758 CXFA_Node* pInstMgrNode = NULL; 758 CXFA_Node* pInstMgrNode = NULL;
759 CXFA_NodeArray subformArray; 759 CXFA_NodeArray subformArray;
760 CXFA_NodeArray* pSearchArray = NULL; 760 CXFA_NodeArray* pSearchArray = NULL;
761 if (!bOneInstance && (eElement == XFA_Element::SubformSet || 761 if (!bOneInstance &&
762 eElement == XFA_Element::Subform)) { 762 (eType == XFA_Element::SubformSet || eType == XFA_Element::Subform)) {
763 pInstMgrNode = 763 pInstMgrNode =
764 bUseInstanceManager 764 bUseInstanceManager
765 ? XFA_NodeMerge_CloneOrMergeInstanceManager( 765 ? XFA_NodeMerge_CloneOrMergeInstanceManager(
766 pDocument, pFormParentNode, pTemplateNode, subformArray) 766 pDocument, pFormParentNode, pTemplateNode, subformArray)
767 : NULL; 767 : NULL;
768 if (CXFA_Node* pOccurTemplateNode = 768 if (CXFA_Node* pOccurTemplateNode =
769 pTemplateNode->GetFirstChildByClass(XFA_Element::Occur)) { 769 pTemplateNode->GetFirstChildByClass(XFA_Element::Occur)) {
770 pOccurNode = pInstMgrNode 770 pOccurNode = pInstMgrNode
771 ? XFA_NodeMerge_CloneOrMergeContainer( 771 ? XFA_NodeMerge_CloneOrMergeContainer(
772 pDocument, pInstMgrNode, pOccurTemplateNode, FALSE) 772 pDocument, pInstMgrNode, pOccurTemplateNode, FALSE)
(...skipping 16 matching lines...) Expand all
789 (subformArray.GetSize() < 1)) { 789 (subformArray.GetSize() < 1)) {
790 pSearchArray = NULL; 790 pSearchArray = NULL;
791 } 791 }
792 } 792 }
793 } 793 }
794 int32_t iMax = 1, iInit = 1, iMin = 1; 794 int32_t iMax = 1, iInit = 1, iMin = 1;
795 if (!bOneInstance) { 795 if (!bOneInstance) {
796 XFA_GetOccurInfo(pOccurNode, iMin, iMax, iInit); 796 XFA_GetOccurInfo(pOccurNode, iMin, iMax, iInit);
797 } 797 }
798 XFA_ATTRIBUTEENUM eRelation = 798 XFA_ATTRIBUTEENUM eRelation =
799 eElement == XFA_Element::SubformSet 799 eType == XFA_Element::SubformSet
800 ? pTemplateNode->GetEnum(XFA_ATTRIBUTE_Relation) 800 ? pTemplateNode->GetEnum(XFA_ATTRIBUTE_Relation)
801 : XFA_ATTRIBUTEENUM_Ordered; 801 : XFA_ATTRIBUTEENUM_Ordered;
802 int32_t iCurRepeatIndex = 0; 802 int32_t iCurRepeatIndex = 0;
803 XFA_ATTRIBUTEENUM eParentBindMatch = XFA_ATTRIBUTEENUM_None; 803 XFA_ATTRIBUTEENUM eParentBindMatch = XFA_ATTRIBUTEENUM_None;
804 if (bDataMerge) { 804 if (bDataMerge) {
805 CXFA_NodeIteratorTemplate<CXFA_Node, CXFA_TraverseStrategy_XFAContainerNode> 805 CXFA_NodeIteratorTemplate<CXFA_Node, CXFA_TraverseStrategy_XFAContainerNode>
806 sNodeIterator(pTemplateNode); 806 sNodeIterator(pTemplateNode);
807 FX_BOOL bAccessedDataDOM = FALSE; 807 FX_BOOL bAccessedDataDOM = FALSE;
808 if (eElement == XFA_Element::SubformSet || eElement == XFA_Element::Area) { 808 if (eType == XFA_Element::SubformSet || eType == XFA_Element::Area) {
809 sNodeIterator.MoveToNext(); 809 sNodeIterator.MoveToNext();
810 } else { 810 } else {
811 CFX_MapPtrTemplate<CXFA_Node*, CXFA_Node*> subformMapArray; 811 CFX_MapPtrTemplate<CXFA_Node*, CXFA_Node*> subformMapArray;
812 CXFA_NodeArray nodeArray; 812 CXFA_NodeArray nodeArray;
813 for (; iMax < 0 || iCurRepeatIndex < iMax; iCurRepeatIndex++) { 813 for (; iMax < 0 || iCurRepeatIndex < iMax; iCurRepeatIndex++) {
814 FX_BOOL bSelfMatch = FALSE; 814 FX_BOOL bSelfMatch = FALSE;
815 XFA_ATTRIBUTEENUM eBindMatch = XFA_ATTRIBUTEENUM_None; 815 XFA_ATTRIBUTEENUM eBindMatch = XFA_ATTRIBUTEENUM_None;
816 CXFA_Node* pDataNode = XFA_DataMerge_FindMatchingDataNode( 816 CXFA_Node* pDataNode = XFA_DataMerge_FindMatchingDataNode(
817 pDocument, pTemplateNode, pDataScope, bAccessedDataDOM, FALSE, 817 pDocument, pTemplateNode, pDataScope, bAccessedDataDOM, FALSE,
818 &sNodeIterator, bSelfMatch, eBindMatch); 818 &sNodeIterator, bSelfMatch, eBindMatch);
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
1084 } 1084 }
1085 return NULL; 1085 return NULL;
1086 } 1086 }
1087 1087
1088 static void XFA_DataMerge_UpdateBindingRelations(CXFA_Document* pDocument, 1088 static void XFA_DataMerge_UpdateBindingRelations(CXFA_Document* pDocument,
1089 CXFA_Node* pFormNode, 1089 CXFA_Node* pFormNode,
1090 CXFA_Node* pDataScope, 1090 CXFA_Node* pDataScope,
1091 FX_BOOL bDataRef, 1091 FX_BOOL bDataRef,
1092 FX_BOOL bParentDataRef) { 1092 FX_BOOL bParentDataRef) {
1093 FX_BOOL bMatchRef = TRUE; 1093 FX_BOOL bMatchRef = TRUE;
1094 XFA_Element eClassID = pFormNode->GetElementType(); 1094 XFA_Element eType = pFormNode->GetElementType();
1095 CXFA_Node* pDataNode = pFormNode->GetBindData(); 1095 CXFA_Node* pDataNode = pFormNode->GetBindData();
1096 if (eClassID == XFA_Element::Subform || eClassID == XFA_Element::ExclGroup || 1096 if (eType == XFA_Element::Subform || eType == XFA_Element::ExclGroup ||
1097 eClassID == XFA_Element::Field) { 1097 eType == XFA_Element::Field) {
1098 CXFA_Node* pTemplateNode = pFormNode->GetTemplateNode(); 1098 CXFA_Node* pTemplateNode = pFormNode->GetTemplateNode();
1099 CXFA_Node* pTemplateNodeBind = 1099 CXFA_Node* pTemplateNodeBind =
1100 pTemplateNode ? pTemplateNode->GetFirstChildByClass(XFA_Element::Bind) 1100 pTemplateNode ? pTemplateNode->GetFirstChildByClass(XFA_Element::Bind)
1101 : NULL; 1101 : NULL;
1102 XFA_ATTRIBUTEENUM eMatch = 1102 XFA_ATTRIBUTEENUM eMatch =
1103 pTemplateNodeBind ? pTemplateNodeBind->GetEnum(XFA_ATTRIBUTE_Match) 1103 pTemplateNodeBind ? pTemplateNodeBind->GetEnum(XFA_ATTRIBUTE_Match)
1104 : XFA_ATTRIBUTEENUM_Once; 1104 : XFA_ATTRIBUTEENUM_Once;
1105 switch (eMatch) { 1105 switch (eMatch) {
1106 case XFA_ATTRIBUTEENUM_None: 1106 case XFA_ATTRIBUTEENUM_None:
1107 if (!bDataRef || bParentDataRef) { 1107 if (!bDataRef || bParentDataRef) {
1108 XFA_DataMerge_FormValueNode_MatchNoneCreateChild(pFormNode); 1108 XFA_DataMerge_FormValueNode_MatchNoneCreateChild(pFormNode);
1109 } 1109 }
1110 break; 1110 break;
1111 case XFA_ATTRIBUTEENUM_Once: 1111 case XFA_ATTRIBUTEENUM_Once:
1112 if (!bDataRef || bParentDataRef) { 1112 if (!bDataRef || bParentDataRef) {
1113 if (!pDataNode) { 1113 if (!pDataNode) {
1114 if (pFormNode->GetNameHash() != 0 && 1114 if (pFormNode->GetNameHash() != 0 &&
1115 pFormNode->GetEnum(XFA_ATTRIBUTE_Scope) != 1115 pFormNode->GetEnum(XFA_ATTRIBUTE_Scope) !=
1116 XFA_ATTRIBUTEENUM_None) { 1116 XFA_ATTRIBUTEENUM_None) {
1117 XFA_Element eDataNodeType = (eClassID == XFA_Element::Subform || 1117 XFA_Element eDataNodeType = (eType == XFA_Element::Subform ||
1118 XFA_FieldIsMultiListBox(pFormNode)) 1118 XFA_FieldIsMultiListBox(pFormNode))
1119 ? XFA_Element::DataGroup 1119 ? XFA_Element::DataGroup
1120 : XFA_Element::DataValue; 1120 : XFA_Element::DataValue;
1121 pDataNode = XFA_DataDescription_MaybeCreateDataNode( 1121 pDataNode = XFA_DataDescription_MaybeCreateDataNode(
1122 pDocument, pDataScope, eDataNodeType, 1122 pDocument, pDataScope, eDataNodeType,
1123 CFX_WideString(pFormNode->GetCData(XFA_ATTRIBUTE_Name))); 1123 CFX_WideString(pFormNode->GetCData(XFA_ATTRIBUTE_Name)));
1124 if (pDataNode) { 1124 if (pDataNode) {
1125 XFA_DataMerge_CreateDataBinding(pFormNode, pDataNode, FALSE); 1125 XFA_DataMerge_CreateDataBinding(pFormNode, pDataNode, FALSE);
1126 } 1126 }
1127 } 1127 }
(...skipping 10 matching lines...) Expand all
1138 } 1138 }
1139 } 1139 }
1140 } 1140 }
1141 break; 1141 break;
1142 case XFA_ATTRIBUTEENUM_Global: 1142 case XFA_ATTRIBUTEENUM_Global:
1143 if (!bDataRef || bParentDataRef) { 1143 if (!bDataRef || bParentDataRef) {
1144 uint32_t dwNameHash = pFormNode->GetNameHash(); 1144 uint32_t dwNameHash = pFormNode->GetNameHash();
1145 if (dwNameHash != 0 && !pDataNode) { 1145 if (dwNameHash != 0 && !pDataNode) {
1146 pDataNode = XFA_DataMerge_GetGlobalBinding(pDocument, dwNameHash); 1146 pDataNode = XFA_DataMerge_GetGlobalBinding(pDocument, dwNameHash);
1147 if (!pDataNode) { 1147 if (!pDataNode) {
1148 XFA_Element eDataNodeType = (eClassID == XFA_Element::Subform || 1148 XFA_Element eDataNodeType = (eType == XFA_Element::Subform ||
1149 XFA_FieldIsMultiListBox(pFormNode)) 1149 XFA_FieldIsMultiListBox(pFormNode))
1150 ? XFA_Element::DataGroup 1150 ? XFA_Element::DataGroup
1151 : XFA_Element::DataValue; 1151 : XFA_Element::DataValue;
1152 CXFA_Node* pRecordNode = 1152 CXFA_Node* pRecordNode =
1153 ToNode(pDocument->GetXFAObject(XFA_HASHCODE_Record)); 1153 ToNode(pDocument->GetXFAObject(XFA_HASHCODE_Record));
1154 pDataNode = XFA_DataDescription_MaybeCreateDataNode( 1154 pDataNode = XFA_DataDescription_MaybeCreateDataNode(
1155 pDocument, pRecordNode, eDataNodeType, 1155 pDocument, pRecordNode, eDataNodeType,
1156 CFX_WideString(pFormNode->GetCData(XFA_ATTRIBUTE_Name))); 1156 CFX_WideString(pFormNode->GetCData(XFA_ATTRIBUTE_Name)));
1157 if (pDataNode) { 1157 if (pDataNode) {
1158 XFA_DataMerge_CreateDataBinding(pFormNode, pDataNode, FALSE); 1158 XFA_DataMerge_CreateDataBinding(pFormNode, pDataNode, FALSE);
(...skipping 29 matching lines...) Expand all
1188 } else { 1188 } else {
1189 XFA_DataMerge_FormValueNode_MatchNoneCreateChild(pFormNode); 1189 XFA_DataMerge_FormValueNode_MatchNoneCreateChild(pFormNode);
1190 } 1190 }
1191 } 1191 }
1192 } break; 1192 } break;
1193 default: 1193 default:
1194 break; 1194 break;
1195 } 1195 }
1196 } 1196 }
1197 if (bMatchRef && 1197 if (bMatchRef &&
1198 (eClassID == XFA_Element::Subform || 1198 (eType == XFA_Element::Subform || eType == XFA_Element::SubformSet ||
1199 eClassID == XFA_Element::SubformSet || eClassID == XFA_Element::Area || 1199 eType == XFA_Element::Area || eType == XFA_Element::PageArea ||
1200 eClassID == XFA_Element::PageArea || eClassID == XFA_Element::PageSet)) { 1200 eType == XFA_Element::PageSet)) {
1201 for (CXFA_Node* pFormChild = 1201 for (CXFA_Node* pFormChild =
1202 pFormNode->GetNodeItem(XFA_NODEITEM_FirstChild); 1202 pFormNode->GetNodeItem(XFA_NODEITEM_FirstChild);
1203 pFormChild; 1203 pFormChild;
1204 pFormChild = pFormChild->GetNodeItem(XFA_NODEITEM_NextSibling)) { 1204 pFormChild = pFormChild->GetNodeItem(XFA_NODEITEM_NextSibling)) {
1205 if (!pFormChild->IsContainerNode()) 1205 if (!pFormChild->IsContainerNode())
1206 continue; 1206 continue;
1207 if (pFormChild->IsUnusedNode()) 1207 if (pFormChild->IsUnusedNode())
1208 continue; 1208 continue;
1209 1209
1210 XFA_DataMerge_UpdateBindingRelations(pDocument, pFormChild, 1210 XFA_DataMerge_UpdateBindingRelations(pDocument, pFormChild,
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
1401 } 1401 }
1402 pFormRoot->SetObject(XFA_ATTRIBUTE_BindingNode, NULL); 1402 pFormRoot->SetObject(XFA_ATTRIBUTE_BindingNode, NULL);
1403 } 1403 }
1404 XFA_DataMerge_ClearGlobalBinding(this); 1404 XFA_DataMerge_ClearGlobalBinding(this);
1405 if (bDoDataMerge) { 1405 if (bDoDataMerge) {
1406 DoDataMerge(); 1406 DoDataMerge();
1407 } 1407 }
1408 CXFA_LayoutProcessor* pLayoutProcessor = GetLayoutProcessor(); 1408 CXFA_LayoutProcessor* pLayoutProcessor = GetLayoutProcessor();
1409 pLayoutProcessor->SetForceReLayout(TRUE); 1409 pLayoutProcessor->SetForceReLayout(TRUE);
1410 } 1410 }
OLDNEW
« no previous file with comments | « xfa/fxfa/parser/xfa_document_datamerger_imp.h ('k') | xfa/fxfa/parser/xfa_document_serialize.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698