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

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

Issue 2043153002: Remove various FXJSE Value methods. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: 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
« no previous file with comments | « xfa/fxfa/fm2js/xfa_fm2jscontext.cpp ('k') | xfa/fxfa/parser/xfa_script_eventpseudomodel.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_object.h" 7 #include "xfa/fxfa/parser/xfa_object.h"
8 8
9 #include <memory> 9 #include <memory>
10 10
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 ASSERT(FALSE); 79 ASSERT(FALSE);
80 return (XFA_ELEMENT)0; 80 return (XFA_ELEMENT)0;
81 } 81 }
82 82
83 void CXFA_Object::Script_ObjectClass_ClassName(CFXJSE_Value* pValue, 83 void CXFA_Object::Script_ObjectClass_ClassName(CFXJSE_Value* pValue,
84 FX_BOOL bSetting, 84 FX_BOOL bSetting,
85 XFA_ATTRIBUTE eAttribute) { 85 XFA_ATTRIBUTE eAttribute) {
86 if (!bSetting) { 86 if (!bSetting) {
87 CFX_WideStringC className; 87 CFX_WideStringC className;
88 GetClassName(className); 88 GetClassName(className);
89 FXJSE_Value_SetUTF8String( 89 pValue->SetString(
90 pValue,
91 FX_UTF8Encode(className.c_str(), className.GetLength()).AsStringC()); 90 FX_UTF8Encode(className.c_str(), className.GetLength()).AsStringC());
92 } else { 91 } else {
93 ThrowException(XFA_IDS_INVAlID_PROP_SET); 92 ThrowException(XFA_IDS_INVAlID_PROP_SET);
94 } 93 }
95 } 94 }
96 95
97 void CXFA_Object::ThrowException(int32_t iStringID, ...) { 96 void CXFA_Object::ThrowException(int32_t iStringID, ...) {
98 IXFA_AppProvider* pAppProvider = m_pDocument->GetNotify()->GetAppProvider(); 97 IXFA_AppProvider* pAppProvider = m_pDocument->GetNotify()->GetAppProvider();
99 ASSERT(pAppProvider); 98 ASSERT(pAppProvider);
100 CFX_WideString wsFormat; 99 CFX_WideString wsFormat;
(...skipping 537 matching lines...) Expand 10 before | Expand all | Expand 10 after
638 return; 637 return;
639 CXFA_Node* refNode = this; 638 CXFA_Node* refNode = this;
640 if (refNode->GetClassID() == XFA_ELEMENT_Xfa) 639 if (refNode->GetClassID() == XFA_ELEMENT_Xfa)
641 refNode = ToNode(pScriptContext->GetThisObject()); 640 refNode = ToNode(pScriptContext->GetThisObject());
642 uint32_t dwFlag = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Attributes | 641 uint32_t dwFlag = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Attributes |
643 XFA_RESOLVENODE_Properties | XFA_RESOLVENODE_Parent | 642 XFA_RESOLVENODE_Properties | XFA_RESOLVENODE_Parent |
644 XFA_RESOLVENODE_Siblings; 643 XFA_RESOLVENODE_Siblings;
645 XFA_RESOLVENODE_RS resoveNodeRS; 644 XFA_RESOLVENODE_RS resoveNodeRS;
646 int32_t iRet = pScriptContext->ResolveObjects( 645 int32_t iRet = pScriptContext->ResolveObjects(
647 refNode, wsExpression.AsStringC(), resoveNodeRS, dwFlag); 646 refNode, wsExpression.AsStringC(), resoveNodeRS, dwFlag);
648 if (iRet < 1) 647 if (iRet < 1) {
649 return FXJSE_Value_SetNull(pArguments->GetReturnValue()); 648 pArguments->GetReturnValue()->SetNull();
649 return;
650 }
650 if (resoveNodeRS.dwFlags == XFA_RESOVENODE_RSTYPE_Nodes) { 651 if (resoveNodeRS.dwFlags == XFA_RESOVENODE_RSTYPE_Nodes) {
651 CXFA_Object* pNode = resoveNodeRS.nodes[0]; 652 CXFA_Object* pNode = resoveNodeRS.nodes[0];
652 FXJSE_Value_Set(pArguments->GetReturnValue(), 653 pArguments->GetReturnValue()->Assign(
653 pScriptContext->GetJSValueFromMap(pNode)); 654 pScriptContext->GetJSValueFromMap(pNode));
654 } else { 655 } else {
655 const XFA_SCRIPTATTRIBUTEINFO* lpAttributeInfo = 656 const XFA_SCRIPTATTRIBUTEINFO* lpAttributeInfo =
656 resoveNodeRS.pScriptAttribute; 657 resoveNodeRS.pScriptAttribute;
657 if (lpAttributeInfo && lpAttributeInfo->eValueType == XFA_SCRIPT_Object) { 658 if (lpAttributeInfo && lpAttributeInfo->eValueType == XFA_SCRIPT_Object) {
658 std::unique_ptr<CFXJSE_Value> pValue( 659 std::unique_ptr<CFXJSE_Value> pValue(
659 new CFXJSE_Value(pScriptContext->GetRuntime())); 660 new CFXJSE_Value(pScriptContext->GetRuntime()));
660 (resoveNodeRS.nodes[0]->*(lpAttributeInfo->lpfnCallback))( 661 (resoveNodeRS.nodes[0]->*(lpAttributeInfo->lpfnCallback))(
661 pValue.get(), FALSE, (XFA_ATTRIBUTE)lpAttributeInfo->eAttribute); 662 pValue.get(), FALSE, (XFA_ATTRIBUTE)lpAttributeInfo->eAttribute);
662 FXJSE_Value_Set(pArguments->GetReturnValue(), pValue.get()); 663 pArguments->GetReturnValue()->Assign(pValue.get());
663 } else { 664 } else {
664 FXJSE_Value_SetNull(pArguments->GetReturnValue()); 665 pArguments->GetReturnValue()->SetNull();
665 } 666 }
666 } 667 }
667 } 668 }
668 669
669 void CXFA_Node::Script_TreeClass_ResolveNodes(CFXJSE_Arguments* pArguments) { 670 void CXFA_Node::Script_TreeClass_ResolveNodes(CFXJSE_Arguments* pArguments) {
670 int32_t iLength = pArguments->GetLength(); 671 int32_t iLength = pArguments->GetLength();
671 if (iLength != 1) { 672 if (iLength != 1) {
672 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"resolveNodes"); 673 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"resolveNodes");
673 return; 674 return;
674 } 675 }
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
708 CXFA_ValueArray valueArray(pScriptContext->GetRuntime()); 709 CXFA_ValueArray valueArray(pScriptContext->GetRuntime());
709 if (resoveNodeRS.GetAttributeResult(valueArray) > 0) { 710 if (resoveNodeRS.GetAttributeResult(valueArray) > 0) {
710 CXFA_ObjArray objectArray; 711 CXFA_ObjArray objectArray;
711 valueArray.GetAttributeObject(objectArray); 712 valueArray.GetAttributeObject(objectArray);
712 for (int32_t i = 0; i < objectArray.GetSize(); i++) { 713 for (int32_t i = 0; i < objectArray.GetSize(); i++) {
713 if (objectArray[i]->IsNode()) 714 if (objectArray[i]->IsNode())
714 pNodeList->Append(objectArray[i]->AsNode()); 715 pNodeList->Append(objectArray[i]->AsNode());
715 } 716 }
716 } 717 }
717 } 718 }
718 FXJSE_Value_SetObject(pValue, (CXFA_Object*)pNodeList, 719 pValue->SetObject(pNodeList, pScriptContext->GetJseNormalClass());
719 pScriptContext->GetJseNormalClass());
720 } 720 }
721 721
722 void CXFA_Node::Script_TreeClass_All(CFXJSE_Value* pValue, 722 void CXFA_Node::Script_TreeClass_All(CFXJSE_Value* pValue,
723 FX_BOOL bSetting, 723 FX_BOOL bSetting,
724 XFA_ATTRIBUTE eAttribute) { 724 XFA_ATTRIBUTE eAttribute) {
725 if (bSetting) { 725 if (bSetting) {
726 ThrowException(XFA_IDS_INVAlID_PROP_SET); 726 ThrowException(XFA_IDS_INVAlID_PROP_SET);
727 } else { 727 } else {
728 uint32_t dwFlag = XFA_RESOLVENODE_Siblings | XFA_RESOLVENODE_ALL; 728 uint32_t dwFlag = XFA_RESOLVENODE_Siblings | XFA_RESOLVENODE_ALL;
729 CFX_WideString wsName; 729 CFX_WideString wsName;
(...skipping 12 matching lines...) Expand all
742 if (bSetting) { 742 if (bSetting) {
743 IXFA_AppProvider* pAppProvider = m_pDocument->GetNotify()->GetAppProvider(); 743 IXFA_AppProvider* pAppProvider = m_pDocument->GetNotify()->GetAppProvider();
744 ASSERT(pAppProvider); 744 ASSERT(pAppProvider);
745 CFX_WideString wsMessage; 745 CFX_WideString wsMessage;
746 pAppProvider->LoadString(XFA_IDS_Unable_TO_SET, wsMessage); 746 pAppProvider->LoadString(XFA_IDS_Unable_TO_SET, wsMessage);
747 FXJSE_ThrowMessage( 747 FXJSE_ThrowMessage(
748 "", 748 "",
749 FX_UTF8Encode(wsMessage.c_str(), wsMessage.GetLength()).AsStringC()); 749 FX_UTF8Encode(wsMessage.c_str(), wsMessage.GetLength()).AsStringC());
750 } else { 750 } else {
751 CXFA_AttachNodeList* pNodeList = new CXFA_AttachNodeList(m_pDocument, this); 751 CXFA_AttachNodeList* pNodeList = new CXFA_AttachNodeList(m_pDocument, this);
752 FXJSE_Value_SetObject(pValue, (CXFA_Object*)pNodeList, 752 pValue->SetObject(pNodeList, pScriptContext->GetJseNormalClass());
753 pScriptContext->GetJseNormalClass());
754 } 753 }
755 } 754 }
756 755
757 void CXFA_Node::Script_TreeClass_ClassAll(CFXJSE_Value* pValue, 756 void CXFA_Node::Script_TreeClass_ClassAll(CFXJSE_Value* pValue,
758 FX_BOOL bSetting, 757 FX_BOOL bSetting,
759 XFA_ATTRIBUTE eAttribute) { 758 XFA_ATTRIBUTE eAttribute) {
760 if (bSetting) { 759 if (bSetting) {
761 ThrowException(XFA_IDS_INVAlID_PROP_SET); 760 ThrowException(XFA_IDS_INVAlID_PROP_SET);
762 } else { 761 } else {
763 uint32_t dwFlag = XFA_RESOLVENODE_Siblings | XFA_RESOLVENODE_ALL; 762 uint32_t dwFlag = XFA_RESOLVENODE_Siblings | XFA_RESOLVENODE_ALL;
764 CFX_WideStringC wsName; 763 CFX_WideStringC wsName;
765 GetClassName(wsName); 764 GetClassName(wsName);
766 CFX_WideString wsExpression = FX_WSTRC(L"#") + wsName + FX_WSTRC(L"[*]"); 765 CFX_WideString wsExpression = FX_WSTRC(L"#") + wsName + FX_WSTRC(L"[*]");
767 Script_Som_ResolveNodeList(pValue, wsExpression, dwFlag); 766 Script_Som_ResolveNodeList(pValue, wsExpression, dwFlag);
768 } 767 }
769 } 768 }
770 769
771 void CXFA_Node::Script_TreeClass_Parent(CFXJSE_Value* pValue, 770 void CXFA_Node::Script_TreeClass_Parent(CFXJSE_Value* pValue,
772 FX_BOOL bSetting, 771 FX_BOOL bSetting,
773 XFA_ATTRIBUTE eAttribute) { 772 XFA_ATTRIBUTE eAttribute) {
774 if (bSetting) { 773 if (bSetting) {
775 ThrowException(XFA_IDS_INVAlID_PROP_SET); 774 ThrowException(XFA_IDS_INVAlID_PROP_SET);
776 } else { 775 } else {
777 CXFA_Node* pParent = GetNodeItem(XFA_NODEITEM_Parent); 776 CXFA_Node* pParent = GetNodeItem(XFA_NODEITEM_Parent);
778 if (pParent) { 777 if (pParent) {
779 FXJSE_Value_Set( 778 pValue->Assign(
780 pValue, m_pDocument->GetScriptContext()->GetJSValueFromMap(pParent)); 779 m_pDocument->GetScriptContext()->GetJSValueFromMap(pParent));
781 } else { 780 } else {
782 FXJSE_Value_SetNull(pValue); 781 pValue->SetNull();
783 } 782 }
784 } 783 }
785 } 784 }
786 785
787 void CXFA_Node::Script_TreeClass_Index(CFXJSE_Value* pValue, 786 void CXFA_Node::Script_TreeClass_Index(CFXJSE_Value* pValue,
788 FX_BOOL bSetting, 787 FX_BOOL bSetting,
789 XFA_ATTRIBUTE eAttribute) { 788 XFA_ATTRIBUTE eAttribute) {
790 if (bSetting) 789 if (bSetting)
791 ThrowException(XFA_IDS_INVAlID_PROP_SET); 790 ThrowException(XFA_IDS_INVAlID_PROP_SET);
792 else 791 else
793 FXJSE_Value_SetInteger(pValue, GetNodeSameNameIndex()); 792 pValue->SetInteger(GetNodeSameNameIndex());
794 } 793 }
795 794
796 void CXFA_Node::Script_TreeClass_ClassIndex(CFXJSE_Value* pValue, 795 void CXFA_Node::Script_TreeClass_ClassIndex(CFXJSE_Value* pValue,
797 FX_BOOL bSetting, 796 FX_BOOL bSetting,
798 XFA_ATTRIBUTE eAttribute) { 797 XFA_ATTRIBUTE eAttribute) {
799 if (bSetting) 798 if (bSetting)
800 ThrowException(XFA_IDS_INVAlID_PROP_SET); 799 ThrowException(XFA_IDS_INVAlID_PROP_SET);
801 else 800 else
802 FXJSE_Value_SetInteger(pValue, GetNodeSameClassIndex()); 801 pValue->SetInteger(GetNodeSameClassIndex());
803 } 802 }
804 803
805 void CXFA_Node::Script_TreeClass_SomExpression(CFXJSE_Value* pValue, 804 void CXFA_Node::Script_TreeClass_SomExpression(CFXJSE_Value* pValue,
806 FX_BOOL bSetting, 805 FX_BOOL bSetting,
807 XFA_ATTRIBUTE eAttribute) { 806 XFA_ATTRIBUTE eAttribute) {
808 if (bSetting) { 807 if (bSetting) {
809 ThrowException(XFA_IDS_INVAlID_PROP_SET); 808 ThrowException(XFA_IDS_INVAlID_PROP_SET);
810 } else { 809 } else {
811 CFX_WideString wsSOMExpression; 810 CFX_WideString wsSOMExpression;
812 GetSOMExpression(wsSOMExpression); 811 GetSOMExpression(wsSOMExpression);
813 FXJSE_Value_SetUTF8String(pValue, 812 pValue->SetString(FX_UTF8Encode(wsSOMExpression).AsStringC());
814 FX_UTF8Encode(wsSOMExpression).AsStringC());
815 } 813 }
816 } 814 }
817 815
818 void CXFA_Node::Script_NodeClass_ApplyXSL(CFXJSE_Arguments* pArguments) { 816 void CXFA_Node::Script_NodeClass_ApplyXSL(CFXJSE_Arguments* pArguments) {
819 int32_t iLength = pArguments->GetLength(); 817 int32_t iLength = pArguments->GetLength();
820 if (iLength != 1) { 818 if (iLength != 1) {
821 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"applyXSL"); 819 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"applyXSL");
822 return; 820 return;
823 } 821 }
824 CFX_WideString wsExpression = 822 CFX_WideString wsExpression =
(...skipping 28 matching lines...) Expand all
853 } 851 }
854 852
855 void CXFA_Node::Script_NodeClass_Clone(CFXJSE_Arguments* pArguments) { 853 void CXFA_Node::Script_NodeClass_Clone(CFXJSE_Arguments* pArguments) {
856 int32_t iLength = pArguments->GetLength(); 854 int32_t iLength = pArguments->GetLength();
857 if (iLength != 1) { 855 if (iLength != 1) {
858 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"clone"); 856 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"clone");
859 return; 857 return;
860 } 858 }
861 bool bClone = !!pArguments->GetInt32(0); 859 bool bClone = !!pArguments->GetInt32(0);
862 CXFA_Node* pCloneNode = Clone(bClone); 860 CXFA_Node* pCloneNode = Clone(bClone);
863 FXJSE_Value_Set( 861 pArguments->GetReturnValue()->Assign(
864 pArguments->GetReturnValue(),
865 m_pDocument->GetScriptContext()->GetJSValueFromMap(pCloneNode)); 862 m_pDocument->GetScriptContext()->GetJSValueFromMap(pCloneNode));
866 } 863 }
867 864
868 void CXFA_Node::Script_NodeClass_GetAttribute(CFXJSE_Arguments* pArguments) { 865 void CXFA_Node::Script_NodeClass_GetAttribute(CFXJSE_Arguments* pArguments) {
869 int32_t iLength = pArguments->GetLength(); 866 int32_t iLength = pArguments->GetLength();
870 if (iLength != 1) { 867 if (iLength != 1) {
871 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"getAttribute"); 868 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"getAttribute");
872 return; 869 return;
873 } 870 }
874 CFX_WideString wsExpression = 871 CFX_WideString wsExpression =
875 CFX_WideString::FromUTF8(pArguments->GetUTF8String(0).AsStringC()); 872 CFX_WideString::FromUTF8(pArguments->GetUTF8String(0).AsStringC());
876 CFX_WideString wsValue; 873 CFX_WideString wsValue;
877 GetAttribute(wsExpression.AsStringC(), wsValue); 874 GetAttribute(wsExpression.AsStringC(), wsValue);
878 CFXJSE_Value* pValue = pArguments->GetReturnValue(); 875 CFXJSE_Value* pValue = pArguments->GetReturnValue();
879 if (pValue) 876 if (pValue)
880 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsValue).AsStringC()); 877 pValue->SetString(FX_UTF8Encode(wsValue).AsStringC());
881 } 878 }
882 879
883 void CXFA_Node::Script_NodeClass_GetElement(CFXJSE_Arguments* pArguments) { 880 void CXFA_Node::Script_NodeClass_GetElement(CFXJSE_Arguments* pArguments) {
884 int32_t iLength = pArguments->GetLength(); 881 int32_t iLength = pArguments->GetLength();
885 if (iLength < 1 || iLength > 2) { 882 if (iLength < 1 || iLength > 2) {
886 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"getElement"); 883 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"getElement");
887 return; 884 return;
888 } 885 }
889 CFX_WideString wsExpression; 886 CFX_WideString wsExpression;
890 int32_t iValue = 0; 887 int32_t iValue = 0;
891 wsExpression = 888 wsExpression =
892 CFX_WideString::FromUTF8(pArguments->GetUTF8String(0).AsStringC()); 889 CFX_WideString::FromUTF8(pArguments->GetUTF8String(0).AsStringC());
893 if (iLength >= 2) 890 if (iLength >= 2)
894 iValue = pArguments->GetInt32(1); 891 iValue = pArguments->GetInt32(1);
895 const XFA_ELEMENTINFO* pElementInfo = 892 const XFA_ELEMENTINFO* pElementInfo =
896 XFA_GetElementByName(wsExpression.AsStringC()); 893 XFA_GetElementByName(wsExpression.AsStringC());
897 CXFA_Node* pNode = GetProperty(iValue, pElementInfo->eName); 894 CXFA_Node* pNode = GetProperty(iValue, pElementInfo->eName);
898 FXJSE_Value_Set(pArguments->GetReturnValue(), 895 pArguments->GetReturnValue()->Assign(
899 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNode)); 896 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNode));
900 } 897 }
901 898
902 void CXFA_Node::Script_NodeClass_IsPropertySpecified( 899 void CXFA_Node::Script_NodeClass_IsPropertySpecified(
903 CFXJSE_Arguments* pArguments) { 900 CFXJSE_Arguments* pArguments) {
904 int32_t iLength = pArguments->GetLength(); 901 int32_t iLength = pArguments->GetLength();
905 if (iLength < 1 || iLength > 3) { 902 if (iLength < 1 || iLength > 3) {
906 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"isPropertySpecified"); 903 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"isPropertySpecified");
907 return; 904 return;
908 } 905 }
909 CFX_WideString wsExpression; 906 CFX_WideString wsExpression;
(...skipping 17 matching lines...) Expand all
927 bHas = !!GetProperty(iIndex, pElementInfo->eName); 924 bHas = !!GetProperty(iIndex, pElementInfo->eName);
928 if (!bHas && bParent && m_pParent) { 925 if (!bHas && bParent && m_pParent) {
929 // Also check on the parent. 926 // Also check on the parent.
930 bHas = m_pParent->HasAttribute(pAttributeInfo->eName); 927 bHas = m_pParent->HasAttribute(pAttributeInfo->eName);
931 if (!bHas) 928 if (!bHas)
932 bHas = !!m_pParent->GetProperty(iIndex, pElementInfo->eName); 929 bHas = !!m_pParent->GetProperty(iIndex, pElementInfo->eName);
933 } 930 }
934 } 931 }
935 CFXJSE_Value* pValue = pArguments->GetReturnValue(); 932 CFXJSE_Value* pValue = pArguments->GetReturnValue();
936 if (pValue) 933 if (pValue)
937 FXJSE_Value_SetBoolean(pValue, bHas); 934 pValue->SetBoolean(bHas);
938 } 935 }
939 936
940 void CXFA_Node::Script_NodeClass_LoadXML(CFXJSE_Arguments* pArguments) { 937 void CXFA_Node::Script_NodeClass_LoadXML(CFXJSE_Arguments* pArguments) {
941 int32_t iLength = pArguments->GetLength(); 938 int32_t iLength = pArguments->GetLength();
942 if (iLength < 1 || iLength > 3) { 939 if (iLength < 1 || iLength > 3) {
943 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"loadXML"); 940 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"loadXML");
944 return; 941 return;
945 } 942 }
946 CFX_WideString wsExpression; 943 CFX_WideString wsExpression;
947 bool bIgnoreRoot = true; 944 bool bIgnoreRoot = true;
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
1073 } 1070 }
1074 bPrettyMode = true; 1071 bPrettyMode = true;
1075 } 1072 }
1076 CFX_ByteStringC bsXMLHeader = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; 1073 CFX_ByteStringC bsXMLHeader = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
1077 if (GetPacketID() == XFA_XDPPACKET_Form || 1074 if (GetPacketID() == XFA_XDPPACKET_Form ||
1078 GetPacketID() == XFA_XDPPACKET_Datasets) { 1075 GetPacketID() == XFA_XDPPACKET_Datasets) {
1079 CFDE_XMLNode* pElement = nullptr; 1076 CFDE_XMLNode* pElement = nullptr;
1080 if (GetPacketID() == XFA_XDPPACKET_Datasets) { 1077 if (GetPacketID() == XFA_XDPPACKET_Datasets) {
1081 pElement = GetXMLMappingNode(); 1078 pElement = GetXMLMappingNode();
1082 if (!pElement || pElement->GetType() != FDE_XMLNODE_Element) { 1079 if (!pElement || pElement->GetType() != FDE_XMLNODE_Element) {
1083 FXJSE_Value_SetUTF8String(pArguments->GetReturnValue(), bsXMLHeader); 1080 pArguments->GetReturnValue()->SetString(bsXMLHeader);
1084 return; 1081 return;
1085 } 1082 }
1086 XFA_DataExporter_DealWithDataGroupNode(this); 1083 XFA_DataExporter_DealWithDataGroupNode(this);
1087 } 1084 }
1088 std::unique_ptr<IFX_MemoryStream, ReleaseDeleter<IFX_MemoryStream>> 1085 std::unique_ptr<IFX_MemoryStream, ReleaseDeleter<IFX_MemoryStream>>
1089 pMemoryStream(FX_CreateMemoryStream(TRUE)); 1086 pMemoryStream(FX_CreateMemoryStream(TRUE));
1090 std::unique_ptr<IFX_Stream, ReleaseDeleter<IFX_Stream>> pStream( 1087 std::unique_ptr<IFX_Stream, ReleaseDeleter<IFX_Stream>> pStream(
1091 IFX_Stream::CreateStream( 1088 IFX_Stream::CreateStream(
1092 static_cast<IFX_FileWrite*>(pMemoryStream.get()), 1089 static_cast<IFX_FileWrite*>(pMemoryStream.get()),
1093 FX_STREAMACCESS_Text | FX_STREAMACCESS_Write | 1090 FX_STREAMACCESS_Text | FX_STREAMACCESS_Write |
1094 FX_STREAMACCESS_Append)); 1091 FX_STREAMACCESS_Append));
1095 if (!pStream) { 1092 if (!pStream) {
1096 FXJSE_Value_SetUTF8String(pArguments->GetReturnValue(), bsXMLHeader); 1093 pArguments->GetReturnValue()->SetString(bsXMLHeader);
1097 return; 1094 return;
1098 } 1095 }
1099 pStream->SetCodePage(FX_CODEPAGE_UTF8); 1096 pStream->SetCodePage(FX_CODEPAGE_UTF8);
1100 pStream->WriteData(bsXMLHeader.raw_str(), bsXMLHeader.GetLength()); 1097 pStream->WriteData(bsXMLHeader.raw_str(), bsXMLHeader.GetLength());
1101 if (GetPacketID() == XFA_XDPPACKET_Form) 1098 if (GetPacketID() == XFA_XDPPACKET_Form)
1102 XFA_DataExporter_RegenerateFormFile(this, pStream.get(), nullptr, TRUE); 1099 XFA_DataExporter_RegenerateFormFile(this, pStream.get(), nullptr, TRUE);
1103 else 1100 else
1104 pElement->SaveXMLNode(pStream.get()); 1101 pElement->SaveXMLNode(pStream.get());
1105 // TODO(weili): Check whether we need to save pretty print XML, pdfium:501. 1102 // TODO(weili): Check whether we need to save pretty print XML, pdfium:501.
1106 // For now, just put it here to avoid unused variable warning. 1103 // For now, just put it here to avoid unused variable warning.
1107 (void)bPrettyMode; 1104 (void)bPrettyMode;
1108 FXJSE_Value_SetUTF8String( 1105 pArguments->GetReturnValue()->SetString(
1109 pArguments->GetReturnValue(),
1110 CFX_ByteStringC(pMemoryStream->GetBuffer(), pMemoryStream->GetSize())); 1106 CFX_ByteStringC(pMemoryStream->GetBuffer(), pMemoryStream->GetSize()));
1111 return; 1107 return;
1112 } 1108 }
1113 FXJSE_Value_SetUTF8String(pArguments->GetReturnValue(), ""); 1109 pArguments->GetReturnValue()->SetString("");
1114 } 1110 }
1115 1111
1116 void CXFA_Node::Script_NodeClass_SetAttribute(CFXJSE_Arguments* pArguments) { 1112 void CXFA_Node::Script_NodeClass_SetAttribute(CFXJSE_Arguments* pArguments) {
1117 int32_t iLength = pArguments->GetLength(); 1113 int32_t iLength = pArguments->GetLength();
1118 if (iLength != 2) { 1114 if (iLength != 2) {
1119 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"setAttribute"); 1115 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"setAttribute");
1120 return; 1116 return;
1121 } 1117 }
1122 CFX_WideString wsAttributeValue = 1118 CFX_WideString wsAttributeValue =
1123 CFX_WideString::FromUTF8(pArguments->GetUTF8String(0).AsStringC()); 1119 CFX_WideString::FromUTF8(pArguments->GetUTF8String(0).AsStringC());
(...skipping 20 matching lines...) Expand all
1144 } 1140 }
1145 1141
1146 void CXFA_Node::Script_NodeClass_Ns(CFXJSE_Value* pValue, 1142 void CXFA_Node::Script_NodeClass_Ns(CFXJSE_Value* pValue,
1147 FX_BOOL bSetting, 1143 FX_BOOL bSetting,
1148 XFA_ATTRIBUTE eAttribute) { 1144 XFA_ATTRIBUTE eAttribute) {
1149 if (bSetting) { 1145 if (bSetting) {
1150 ThrowException(XFA_IDS_INVAlID_PROP_SET); 1146 ThrowException(XFA_IDS_INVAlID_PROP_SET);
1151 } else { 1147 } else {
1152 CFX_WideString wsNameSpace; 1148 CFX_WideString wsNameSpace;
1153 TryNamespace(wsNameSpace); 1149 TryNamespace(wsNameSpace);
1154 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsNameSpace).AsStringC()); 1150 pValue->SetString(FX_UTF8Encode(wsNameSpace).AsStringC());
1155 } 1151 }
1156 } 1152 }
1157 1153
1158 void CXFA_Node::Script_NodeClass_Model(CFXJSE_Value* pValue, 1154 void CXFA_Node::Script_NodeClass_Model(CFXJSE_Value* pValue,
1159 FX_BOOL bSetting, 1155 FX_BOOL bSetting,
1160 XFA_ATTRIBUTE eAttribute) { 1156 XFA_ATTRIBUTE eAttribute) {
1161 if (bSetting) { 1157 if (bSetting) {
1162 ThrowException(XFA_IDS_INVAlID_PROP_SET); 1158 ThrowException(XFA_IDS_INVAlID_PROP_SET);
1163 } else { 1159 } else {
1164 FXJSE_Value_Set(pValue, m_pDocument->GetScriptContext()->GetJSValueFromMap( 1160 pValue->Assign(
1165 GetModelNode())); 1161 m_pDocument->GetScriptContext()->GetJSValueFromMap(GetModelNode()));
1166 } 1162 }
1167 } 1163 }
1168 1164
1169 void CXFA_Node::Script_NodeClass_IsContainer(CFXJSE_Value* pValue, 1165 void CXFA_Node::Script_NodeClass_IsContainer(CFXJSE_Value* pValue,
1170 FX_BOOL bSetting, 1166 FX_BOOL bSetting,
1171 XFA_ATTRIBUTE eAttribute) { 1167 XFA_ATTRIBUTE eAttribute) {
1172 if (bSetting) 1168 if (bSetting)
1173 ThrowException(XFA_IDS_INVAlID_PROP_SET); 1169 ThrowException(XFA_IDS_INVAlID_PROP_SET);
1174 else 1170 else
1175 FXJSE_Value_SetBoolean(pValue, IsContainerNode()); 1171 pValue->SetBoolean(IsContainerNode());
1176 } 1172 }
1177 1173
1178 void CXFA_Node::Script_NodeClass_IsNull(CFXJSE_Value* pValue, 1174 void CXFA_Node::Script_NodeClass_IsNull(CFXJSE_Value* pValue,
1179 FX_BOOL bSetting, 1175 FX_BOOL bSetting,
1180 XFA_ATTRIBUTE eAttribute) { 1176 XFA_ATTRIBUTE eAttribute) {
1181 if (bSetting) { 1177 if (bSetting) {
1182 ThrowException(XFA_IDS_INVAlID_PROP_SET); 1178 ThrowException(XFA_IDS_INVAlID_PROP_SET);
1183 } else { 1179 } else {
1184 if (GetClassID() == XFA_ELEMENT_Subform) { 1180 if (GetClassID() == XFA_ELEMENT_Subform) {
1185 FXJSE_Value_SetBoolean(pValue, FALSE); 1181 pValue->SetBoolean(FALSE);
1186 return; 1182 return;
1187 } 1183 }
1188 CFX_WideString strValue; 1184 CFX_WideString strValue;
1189 FXJSE_Value_SetBoolean(pValue, !TryContent(strValue) || strValue.IsEmpty()); 1185 pValue->SetBoolean(!TryContent(strValue) || strValue.IsEmpty());
1190 } 1186 }
1191 } 1187 }
1192 1188
1193 void CXFA_Node::Script_NodeClass_OneOfChild(CFXJSE_Value* pValue, 1189 void CXFA_Node::Script_NodeClass_OneOfChild(CFXJSE_Value* pValue,
1194 FX_BOOL bSetting, 1190 FX_BOOL bSetting,
1195 XFA_ATTRIBUTE eAttribute) { 1191 XFA_ATTRIBUTE eAttribute) {
1196 if (bSetting) { 1192 if (bSetting) {
1197 ThrowException(XFA_IDS_INVAlID_PROP_SET); 1193 ThrowException(XFA_IDS_INVAlID_PROP_SET);
1198 } else { 1194 } else {
1199 CXFA_NodeArray properts; 1195 CXFA_NodeArray properts;
1200 int32_t iSize = GetNodeList(properts, XFA_NODEFILTER_OneOfProperty); 1196 int32_t iSize = GetNodeList(properts, XFA_NODEFILTER_OneOfProperty);
1201 if (iSize > 0) { 1197 if (iSize > 0) {
1202 FXJSE_Value_Set( 1198 pValue->Assign(
1203 pValue,
1204 m_pDocument->GetScriptContext()->GetJSValueFromMap(properts[0])); 1199 m_pDocument->GetScriptContext()->GetJSValueFromMap(properts[0]));
1205 } 1200 }
1206 } 1201 }
1207 } 1202 }
1208 1203
1209 void CXFA_Node::Script_ContainerClass_GetDelta(CFXJSE_Arguments* pArguments) {} 1204 void CXFA_Node::Script_ContainerClass_GetDelta(CFXJSE_Arguments* pArguments) {}
1205
1210 void CXFA_Node::Script_ContainerClass_GetDeltas(CFXJSE_Arguments* pArguments) { 1206 void CXFA_Node::Script_ContainerClass_GetDeltas(CFXJSE_Arguments* pArguments) {
1211 CXFA_ArrayNodeList* pFormNodes = new CXFA_ArrayNodeList(m_pDocument); 1207 CXFA_ArrayNodeList* pFormNodes = new CXFA_ArrayNodeList(m_pDocument);
1212 FXJSE_Value_SetObject(pArguments->GetReturnValue(), (CXFA_Object*)pFormNodes, 1208 pArguments->GetReturnValue()->SetObject(
1213 m_pDocument->GetScriptContext()->GetJseNormalClass()); 1209 pFormNodes, m_pDocument->GetScriptContext()->GetJseNormalClass());
1214 } 1210 }
1215 void CXFA_Node::Script_ModelClass_ClearErrorList(CFXJSE_Arguments* pArguments) { 1211 void CXFA_Node::Script_ModelClass_ClearErrorList(CFXJSE_Arguments* pArguments) {
1216 } 1212 }
1217 void CXFA_Node::Script_ModelClass_CreateNode(CFXJSE_Arguments* pArguments) { 1213 void CXFA_Node::Script_ModelClass_CreateNode(CFXJSE_Arguments* pArguments) {
1218 Script_Template_CreateNode(pArguments); 1214 Script_Template_CreateNode(pArguments);
1219 } 1215 }
1220 void CXFA_Node::Script_ModelClass_IsCompatibleNS(CFXJSE_Arguments* pArguments) { 1216 void CXFA_Node::Script_ModelClass_IsCompatibleNS(CFXJSE_Arguments* pArguments) {
1221 int32_t iLength = pArguments->GetLength(); 1217 int32_t iLength = pArguments->GetLength();
1222 if (iLength < 1) { 1218 if (iLength < 1) {
1223 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"isCompatibleNS"); 1219 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"isCompatibleNS");
1224 return; 1220 return;
1225 } 1221 }
1226 CFX_WideString wsNameSpace; 1222 CFX_WideString wsNameSpace;
1227 if (iLength >= 1) { 1223 if (iLength >= 1) {
1228 CFX_ByteString bsNameSpace = pArguments->GetUTF8String(0); 1224 CFX_ByteString bsNameSpace = pArguments->GetUTF8String(0);
1229 wsNameSpace = CFX_WideString::FromUTF8(bsNameSpace.AsStringC()); 1225 wsNameSpace = CFX_WideString::FromUTF8(bsNameSpace.AsStringC());
1230 } 1226 }
1231 CFX_WideString wsNodeNameSpace; 1227 CFX_WideString wsNodeNameSpace;
1232 TryNamespace(wsNodeNameSpace); 1228 TryNamespace(wsNodeNameSpace);
1233 CFXJSE_Value* pValue = pArguments->GetReturnValue(); 1229 CFXJSE_Value* pValue = pArguments->GetReturnValue();
1234 if (pValue) { 1230 if (pValue)
1235 FXJSE_Value_SetBoolean(pValue, wsNodeNameSpace == wsNameSpace); 1231 pValue->SetBoolean(wsNodeNameSpace == wsNameSpace);
1236 }
1237 } 1232 }
1238 void CXFA_Node::Script_ModelClass_Context(CFXJSE_Value* pValue, 1233 void CXFA_Node::Script_ModelClass_Context(CFXJSE_Value* pValue,
1239 FX_BOOL bSetting, 1234 FX_BOOL bSetting,
1240 XFA_ATTRIBUTE eAttribute) {} 1235 XFA_ATTRIBUTE eAttribute) {}
1241 void CXFA_Node::Script_ModelClass_AliasNode(CFXJSE_Value* pValue, 1236 void CXFA_Node::Script_ModelClass_AliasNode(CFXJSE_Value* pValue,
1242 FX_BOOL bSetting, 1237 FX_BOOL bSetting,
1243 XFA_ATTRIBUTE eAttribute) {} 1238 XFA_ATTRIBUTE eAttribute) {}
1244 void CXFA_Node::Script_Attribute_Integer(CFXJSE_Value* pValue, 1239 void CXFA_Node::Script_Attribute_Integer(CFXJSE_Value* pValue,
1245 FX_BOOL bSetting, 1240 FX_BOOL bSetting,
1246 XFA_ATTRIBUTE eAttribute) { 1241 XFA_ATTRIBUTE eAttribute) {
1247 if (bSetting) { 1242 if (bSetting) {
1248 SetInteger(eAttribute, FXJSE_Value_ToInteger(pValue), true); 1243 SetInteger(eAttribute, pValue->ToInteger(), true);
1249 } else { 1244 } else {
1250 FXJSE_Value_SetInteger(pValue, GetInteger(eAttribute)); 1245 pValue->SetInteger(GetInteger(eAttribute));
1251 } 1246 }
1252 } 1247 }
1253 void CXFA_Node::Script_Attribute_IntegerRead(CFXJSE_Value* pValue, 1248 void CXFA_Node::Script_Attribute_IntegerRead(CFXJSE_Value* pValue,
1254 FX_BOOL bSetting, 1249 FX_BOOL bSetting,
1255 XFA_ATTRIBUTE eAttribute) { 1250 XFA_ATTRIBUTE eAttribute) {
1256 if (!bSetting) { 1251 if (!bSetting) {
1257 FXJSE_Value_SetInteger(pValue, GetInteger(eAttribute)); 1252 pValue->SetInteger(GetInteger(eAttribute));
1258 } else { 1253 } else {
1259 ThrowException(XFA_IDS_INVAlID_PROP_SET); 1254 ThrowException(XFA_IDS_INVAlID_PROP_SET);
1260 } 1255 }
1261 } 1256 }
1262 void CXFA_Node::Script_Attribute_BOOL(CFXJSE_Value* pValue, 1257 void CXFA_Node::Script_Attribute_BOOL(CFXJSE_Value* pValue,
1263 FX_BOOL bSetting, 1258 FX_BOOL bSetting,
1264 XFA_ATTRIBUTE eAttribute) { 1259 XFA_ATTRIBUTE eAttribute) {
1265 if (bSetting) { 1260 if (bSetting) {
1266 SetBoolean(eAttribute, FXJSE_Value_ToBoolean(pValue), true); 1261 SetBoolean(eAttribute, pValue->ToBoolean(), true);
1267 } else { 1262 } else {
1268 FXJSE_Value_SetUTF8String(pValue, GetBoolean(eAttribute) ? "1" : "0"); 1263 pValue->SetString(GetBoolean(eAttribute) ? "1" : "0");
1269 } 1264 }
1270 } 1265 }
1271 void CXFA_Node::Script_Attribute_BOOLRead(CFXJSE_Value* pValue, 1266 void CXFA_Node::Script_Attribute_BOOLRead(CFXJSE_Value* pValue,
1272 FX_BOOL bSetting, 1267 FX_BOOL bSetting,
1273 XFA_ATTRIBUTE eAttribute) { 1268 XFA_ATTRIBUTE eAttribute) {
1274 if (!bSetting) { 1269 if (!bSetting) {
1275 FXJSE_Value_SetUTF8String(pValue, GetBoolean(eAttribute) ? "1" : "0"); 1270 pValue->SetString(GetBoolean(eAttribute) ? "1" : "0");
1276 } else { 1271 } else {
1277 ThrowException(XFA_IDS_INVAlID_PROP_SET); 1272 ThrowException(XFA_IDS_INVAlID_PROP_SET);
1278 } 1273 }
1279 } 1274 }
1280 1275
1281 void CXFA_Node::Script_Attribute_SendAttributeChangeMessage( 1276 void CXFA_Node::Script_Attribute_SendAttributeChangeMessage(
1282 XFA_ATTRIBUTE eAttribute, 1277 XFA_ATTRIBUTE eAttribute,
1283 FX_BOOL bScriptModify) { 1278 FX_BOOL bScriptModify) {
1284 CXFA_LayoutProcessor* pLayoutPro = m_pDocument->GetLayoutProcessor(); 1279 CXFA_LayoutProcessor* pLayoutPro = m_pDocument->GetLayoutProcessor();
1285 if (!pLayoutPro) 1280 if (!pLayoutPro)
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
1430 pLayoutPro->AddChangedContainer(pParent); 1425 pLayoutPro->AddChangedContainer(pParent);
1431 } 1426 }
1432 } 1427 }
1433 } 1428 }
1434 1429
1435 void CXFA_Node::Script_Attribute_String(CFXJSE_Value* pValue, 1430 void CXFA_Node::Script_Attribute_String(CFXJSE_Value* pValue,
1436 FX_BOOL bSetting, 1431 FX_BOOL bSetting,
1437 XFA_ATTRIBUTE eAttribute) { 1432 XFA_ATTRIBUTE eAttribute) {
1438 if (bSetting) { 1433 if (bSetting) {
1439 CFX_ByteString szValue; 1434 CFX_ByteString szValue;
1440 FXJSE_Value_ToUTF8String(pValue, szValue); 1435 pValue->ToString(szValue);
1441 CFX_WideString wsValue = CFX_WideString::FromUTF8(szValue.AsStringC()); 1436 CFX_WideString wsValue = CFX_WideString::FromUTF8(szValue.AsStringC());
1442 SetAttribute(eAttribute, wsValue.AsStringC(), true); 1437 SetAttribute(eAttribute, wsValue.AsStringC(), true);
1443 if (eAttribute == XFA_ATTRIBUTE_Use && GetClassID() == XFA_ELEMENT_Desc) { 1438 if (eAttribute == XFA_ATTRIBUTE_Use && GetClassID() == XFA_ELEMENT_Desc) {
1444 CFX_WideString wsUseVal = wsValue, wsID, wsSOM; 1439 CFX_WideString wsUseVal = wsValue, wsID, wsSOM;
1445 CXFA_Node* pTemplateNode = 1440 CXFA_Node* pTemplateNode =
1446 ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Template)); 1441 ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Template));
1447 CXFA_Node* pProtoRoot = 1442 CXFA_Node* pProtoRoot =
1448 pTemplateNode->GetFirstChildByClass(XFA_ELEMENT_Subform) 1443 pTemplateNode->GetFirstChildByClass(XFA_ELEMENT_Subform)
1449 ->GetFirstChildByClass(XFA_ELEMENT_Proto); 1444 ->GetFirstChildByClass(XFA_ELEMENT_Proto);
1450 if (!wsUseVal.IsEmpty()) { 1445 if (!wsUseVal.IsEmpty()) {
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1486 InsertChild(pHeadChild); 1481 InsertChild(pHeadChild);
1487 pHeadChild = pSibling; 1482 pHeadChild = pSibling;
1488 } 1483 }
1489 m_pDocument->RemovePurgeNode(pProtoForm); 1484 m_pDocument->RemovePurgeNode(pProtoForm);
1490 delete pProtoForm; 1485 delete pProtoForm;
1491 } 1486 }
1492 } 1487 }
1493 } else { 1488 } else {
1494 CFX_WideString wsValue; 1489 CFX_WideString wsValue;
1495 GetAttribute(eAttribute, wsValue); 1490 GetAttribute(eAttribute, wsValue);
1496 FXJSE_Value_SetUTF8String( 1491 pValue->SetString(
1497 pValue,
1498 FX_UTF8Encode(wsValue.c_str(), wsValue.GetLength()).AsStringC()); 1492 FX_UTF8Encode(wsValue.c_str(), wsValue.GetLength()).AsStringC());
1499 } 1493 }
1500 } 1494 }
1501 void CXFA_Node::Script_Attribute_StringRead(CFXJSE_Value* pValue, 1495 void CXFA_Node::Script_Attribute_StringRead(CFXJSE_Value* pValue,
1502 FX_BOOL bSetting, 1496 FX_BOOL bSetting,
1503 XFA_ATTRIBUTE eAttribute) { 1497 XFA_ATTRIBUTE eAttribute) {
1504 if (!bSetting) { 1498 if (!bSetting) {
1505 CFX_WideString wsValue; 1499 CFX_WideString wsValue;
1506 GetAttribute(eAttribute, wsValue); 1500 GetAttribute(eAttribute, wsValue);
1507 FXJSE_Value_SetUTF8String( 1501 pValue->SetString(
1508 pValue,
1509 FX_UTF8Encode(wsValue.c_str(), wsValue.GetLength()).AsStringC()); 1502 FX_UTF8Encode(wsValue.c_str(), wsValue.GetLength()).AsStringC());
1510 } else { 1503 } else {
1511 ThrowException(XFA_IDS_INVAlID_PROP_SET); 1504 ThrowException(XFA_IDS_INVAlID_PROP_SET);
1512 } 1505 }
1513 } 1506 }
1514 void CXFA_Node::Script_WsdlConnection_Execute(CFXJSE_Arguments* pArguments) { 1507 void CXFA_Node::Script_WsdlConnection_Execute(CFXJSE_Arguments* pArguments) {
1515 int32_t argc = pArguments->GetLength(); 1508 int32_t argc = pArguments->GetLength();
1516 if ((argc == 0) || (argc == 1)) { 1509 if ((argc == 0) || (argc == 1)) {
1517 FXJSE_Value_SetBoolean(pArguments->GetReturnValue(), FALSE); 1510 pArguments->GetReturnValue()->SetBoolean(FALSE);
1518 } else { 1511 } else {
1519 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execute"); 1512 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execute");
1520 } 1513 }
1521 } 1514 }
1522 void CXFA_Node::Script_Delta_Restore(CFXJSE_Arguments* pArguments) { 1515 void CXFA_Node::Script_Delta_Restore(CFXJSE_Arguments* pArguments) {
1523 int32_t argc = pArguments->GetLength(); 1516 int32_t argc = pArguments->GetLength();
1524 if (argc == 0) { 1517 if (argc == 0) {
1525 } else { 1518 } else {
1526 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"restore"); 1519 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"restore");
1527 } 1520 }
(...skipping 15 matching lines...) Expand all
1543 return; 1536 return;
1544 } 1537 }
1545 FX_BOOL bNew = FALSE; 1538 FX_BOOL bNew = FALSE;
1546 CXFA_Validate validate = pWidgetData->GetValidate(); 1539 CXFA_Validate validate = pWidgetData->GetValidate();
1547 if (!validate) { 1540 if (!validate) {
1548 validate = pWidgetData->GetValidate(TRUE); 1541 validate = pWidgetData->GetValidate(TRUE);
1549 bNew = TRUE; 1542 bNew = TRUE;
1550 } 1543 }
1551 if (bSetting) { 1544 if (bSetting) {
1552 CFX_ByteString bsMessage; 1545 CFX_ByteString bsMessage;
1553 FXJSE_Value_ToUTF8String(pValue, bsMessage); 1546 pValue->ToString(bsMessage);
1554 switch (iMessageType) { 1547 switch (iMessageType) {
1555 case XFA_SOM_ValidationMessage: 1548 case XFA_SOM_ValidationMessage:
1556 validate.SetScriptMessageText( 1549 validate.SetScriptMessageText(
1557 CFX_WideString::FromUTF8(bsMessage.AsStringC())); 1550 CFX_WideString::FromUTF8(bsMessage.AsStringC()));
1558 break; 1551 break;
1559 case XFA_SOM_FormatMessage: 1552 case XFA_SOM_FormatMessage:
1560 validate.SetFormatMessageText( 1553 validate.SetFormatMessageText(
1561 CFX_WideString::FromUTF8(bsMessage.AsStringC())); 1554 CFX_WideString::FromUTF8(bsMessage.AsStringC()));
1562 break; 1555 break;
1563 case XFA_SOM_MandatoryMessage: 1556 case XFA_SOM_MandatoryMessage:
(...skipping 18 matching lines...) Expand all
1582 break; 1575 break;
1583 case XFA_SOM_FormatMessage: 1576 case XFA_SOM_FormatMessage:
1584 validate.GetFormatMessageText(wsMessage); 1577 validate.GetFormatMessageText(wsMessage);
1585 break; 1578 break;
1586 case XFA_SOM_MandatoryMessage: 1579 case XFA_SOM_MandatoryMessage:
1587 validate.GetNullMessageText(wsMessage); 1580 validate.GetNullMessageText(wsMessage);
1588 break; 1581 break;
1589 default: 1582 default:
1590 break; 1583 break;
1591 } 1584 }
1592 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsMessage).AsStringC()); 1585 pValue->SetString(FX_UTF8Encode(wsMessage).AsStringC());
1593 } 1586 }
1594 } 1587 }
1595 void CXFA_Node::Script_Som_ValidationMessage(CFXJSE_Value* pValue, 1588 void CXFA_Node::Script_Som_ValidationMessage(CFXJSE_Value* pValue,
1596 FX_BOOL bSetting, 1589 FX_BOOL bSetting,
1597 XFA_ATTRIBUTE eAttribute) { 1590 XFA_ATTRIBUTE eAttribute) {
1598 Script_Som_Message(pValue, bSetting, XFA_SOM_ValidationMessage); 1591 Script_Som_Message(pValue, bSetting, XFA_SOM_ValidationMessage);
1599 } 1592 }
1600 void CXFA_Node::Script_Field_Length(CFXJSE_Value* pValue, 1593 void CXFA_Node::Script_Field_Length(CFXJSE_Value* pValue,
1601 FX_BOOL bSetting, 1594 FX_BOOL bSetting,
1602 XFA_ATTRIBUTE eAttribute) { 1595 XFA_ATTRIBUTE eAttribute) {
1603 if (bSetting) { 1596 if (bSetting) {
1604 ThrowException(XFA_IDS_INVAlID_PROP_SET); 1597 ThrowException(XFA_IDS_INVAlID_PROP_SET);
1605 } else { 1598 } else {
1606 CXFA_WidgetData* pWidgetData = GetWidgetData(); 1599 CXFA_WidgetData* pWidgetData = GetWidgetData();
1607 if (!pWidgetData) { 1600 if (!pWidgetData) {
1608 FXJSE_Value_SetInteger(pValue, 0); 1601 pValue->SetInteger(0);
1609 return; 1602 return;
1610 } 1603 }
1611 FXJSE_Value_SetInteger(pValue, pWidgetData->CountChoiceListItems(TRUE)); 1604 pValue->SetInteger(pWidgetData->CountChoiceListItems(TRUE));
1612 } 1605 }
1613 } 1606 }
1614 void CXFA_Node::Script_Som_DefaultValue(CFXJSE_Value* pValue, 1607 void CXFA_Node::Script_Som_DefaultValue(CFXJSE_Value* pValue,
1615 FX_BOOL bSetting, 1608 FX_BOOL bSetting,
1616 XFA_ATTRIBUTE eAttribute) { 1609 XFA_ATTRIBUTE eAttribute) {
1617 XFA_ELEMENT classID = GetClassID(); 1610 XFA_ELEMENT classID = GetClassID();
1618 if (classID == XFA_ELEMENT_Field) { 1611 if (classID == XFA_ELEMENT_Field) {
1619 Script_Field_DefaultValue(pValue, bSetting, eAttribute); 1612 Script_Field_DefaultValue(pValue, bSetting, eAttribute);
1620 return; 1613 return;
1621 } else if (classID == XFA_ELEMENT_Draw) { 1614 } else if (classID == XFA_ELEMENT_Draw) {
1622 Script_Draw_DefaultValue(pValue, bSetting, eAttribute); 1615 Script_Draw_DefaultValue(pValue, bSetting, eAttribute);
1623 return; 1616 return;
1624 } else if (classID == XFA_ELEMENT_Boolean) { 1617 } else if (classID == XFA_ELEMENT_Boolean) {
1625 Script_Boolean_Value(pValue, bSetting, eAttribute); 1618 Script_Boolean_Value(pValue, bSetting, eAttribute);
1626 return; 1619 return;
1627 } 1620 }
1628 if (bSetting) { 1621 if (bSetting) {
1629 CFX_ByteString newValue; 1622 CFX_ByteString newValue;
1630 if (!(FXJSE_Value_IsNull(pValue) || FXJSE_Value_IsUndefined(pValue))) { 1623 if (!(FXJSE_Value_IsNull(pValue) || FXJSE_Value_IsUndefined(pValue)))
1631 FXJSE_Value_ToUTF8String(pValue, newValue); 1624 pValue->ToString(newValue);
1632 } 1625
1633 CFX_WideString wsNewValue = CFX_WideString::FromUTF8(newValue.AsStringC()); 1626 CFX_WideString wsNewValue = CFX_WideString::FromUTF8(newValue.AsStringC());
1634 CFX_WideString wsFormatValue(wsNewValue); 1627 CFX_WideString wsFormatValue(wsNewValue);
1635 CXFA_WidgetData* pContainerWidgetData = nullptr; 1628 CXFA_WidgetData* pContainerWidgetData = nullptr;
1636 if (GetPacketID() == XFA_XDPPACKET_Datasets) { 1629 if (GetPacketID() == XFA_XDPPACKET_Datasets) {
1637 CXFA_NodeArray formNodes; 1630 CXFA_NodeArray formNodes;
1638 GetBindItems(formNodes); 1631 GetBindItems(formNodes);
1639 CFX_WideString wsPicture; 1632 CFX_WideString wsPicture;
1640 for (int32_t i = 0; i < formNodes.GetSize(); i++) { 1633 for (int32_t i = 0; i < formNodes.GetSize(); i++) {
1641 CXFA_Node* pFormNode = formNodes.GetAt(i); 1634 CXFA_Node* pFormNode = formNodes.GetAt(i);
1642 if (!pFormNode || pFormNode->HasFlag(XFA_NODEFLAG_HasRemoved)) { 1635 if (!pFormNode || pFormNode->HasFlag(XFA_NODEFLAG_HasRemoved)) {
(...skipping 13 matching lines...) Expand all
1656 pContainerWidgetData = GetContainerWidgetData(); 1649 pContainerWidgetData = GetContainerWidgetData();
1657 } 1650 }
1658 if (pContainerWidgetData) { 1651 if (pContainerWidgetData) {
1659 pContainerWidgetData->GetFormatDataValue(wsNewValue, wsFormatValue); 1652 pContainerWidgetData->GetFormatDataValue(wsNewValue, wsFormatValue);
1660 } 1653 }
1661 SetScriptContent(wsNewValue, wsFormatValue, true, TRUE); 1654 SetScriptContent(wsNewValue, wsFormatValue, true, TRUE);
1662 } else { 1655 } else {
1663 CFX_WideString content = GetScriptContent(TRUE); 1656 CFX_WideString content = GetScriptContent(TRUE);
1664 if (content.IsEmpty() && classID != XFA_ELEMENT_Text && 1657 if (content.IsEmpty() && classID != XFA_ELEMENT_Text &&
1665 classID != XFA_ELEMENT_SubmitUrl) { 1658 classID != XFA_ELEMENT_SubmitUrl) {
1666 FXJSE_Value_SetNull(pValue); 1659 pValue->SetNull();
1667 } else if (classID == XFA_ELEMENT_Integer) { 1660 } else if (classID == XFA_ELEMENT_Integer) {
1668 FXJSE_Value_SetInteger(pValue, FXSYS_wtoi(content.c_str())); 1661 pValue->SetInteger(FXSYS_wtoi(content.c_str()));
1669 } else if (classID == XFA_ELEMENT_Float || classID == XFA_ELEMENT_Decimal) { 1662 } else if (classID == XFA_ELEMENT_Float || classID == XFA_ELEMENT_Decimal) {
1670 CFX_Decimal decimal(content.AsStringC()); 1663 CFX_Decimal decimal(content.AsStringC());
1671 FXJSE_Value_SetFloat(pValue, (FX_FLOAT)(double)decimal); 1664 pValue->SetFloat((FX_FLOAT)(double)decimal);
1672 } else { 1665 } else {
1673 FXJSE_Value_SetUTF8String( 1666 pValue->SetString(
1674 pValue,
1675 FX_UTF8Encode(content.c_str(), content.GetLength()).AsStringC()); 1667 FX_UTF8Encode(content.c_str(), content.GetLength()).AsStringC());
1676 } 1668 }
1677 } 1669 }
1678 } 1670 }
1679 void CXFA_Node::Script_Som_DefaultValue_Read(CFXJSE_Value* pValue, 1671 void CXFA_Node::Script_Som_DefaultValue_Read(CFXJSE_Value* pValue,
1680 FX_BOOL bSetting, 1672 FX_BOOL bSetting,
1681 XFA_ATTRIBUTE eAttribute) { 1673 XFA_ATTRIBUTE eAttribute) {
1682 if (bSetting) { 1674 if (bSetting) {
1683 ThrowException(XFA_IDS_INVAlID_PROP_SET); 1675 ThrowException(XFA_IDS_INVAlID_PROP_SET);
1684 return; 1676 return;
1685 } 1677 }
1686 CFX_WideString content = GetScriptContent(TRUE); 1678 CFX_WideString content = GetScriptContent(TRUE);
1687 if (content.IsEmpty()) { 1679 if (content.IsEmpty()) {
1688 FXJSE_Value_SetNull(pValue); 1680 pValue->SetNull();
1689 } else { 1681 } else {
1690 FXJSE_Value_SetUTF8String( 1682 pValue->SetString(
1691 pValue,
1692 FX_UTF8Encode(content.c_str(), content.GetLength()).AsStringC()); 1683 FX_UTF8Encode(content.c_str(), content.GetLength()).AsStringC());
1693 } 1684 }
1694 } 1685 }
1695 void CXFA_Node::Script_Boolean_Value(CFXJSE_Value* pValue, 1686 void CXFA_Node::Script_Boolean_Value(CFXJSE_Value* pValue,
1696 FX_BOOL bSetting, 1687 FX_BOOL bSetting,
1697 XFA_ATTRIBUTE eAttribute) { 1688 XFA_ATTRIBUTE eAttribute) {
1698 if (bSetting) { 1689 if (bSetting) {
1699 CFX_ByteString newValue; 1690 CFX_ByteString newValue;
1700 if (!(FXJSE_Value_IsNull(pValue) || FXJSE_Value_IsUndefined(pValue))) { 1691 if (!(FXJSE_Value_IsNull(pValue) || FXJSE_Value_IsUndefined(pValue)))
1701 FXJSE_Value_ToUTF8String(pValue, newValue); 1692 pValue->ToString(newValue);
1702 } 1693
1703 int32_t iValue = FXSYS_atoi(newValue.c_str()); 1694 int32_t iValue = FXSYS_atoi(newValue.c_str());
1704 CFX_WideString wsNewValue(iValue == 0 ? L"0" : L"1"); 1695 CFX_WideString wsNewValue(iValue == 0 ? L"0" : L"1");
1705 CFX_WideString wsFormatValue(wsNewValue); 1696 CFX_WideString wsFormatValue(wsNewValue);
1706 CXFA_WidgetData* pContainerWidgetData = GetContainerWidgetData(); 1697 CXFA_WidgetData* pContainerWidgetData = GetContainerWidgetData();
1707 if (pContainerWidgetData) { 1698 if (pContainerWidgetData) {
1708 pContainerWidgetData->GetFormatDataValue(wsNewValue, wsFormatValue); 1699 pContainerWidgetData->GetFormatDataValue(wsNewValue, wsFormatValue);
1709 } 1700 }
1710 SetScriptContent(wsNewValue, wsFormatValue, true, TRUE); 1701 SetScriptContent(wsNewValue, wsFormatValue, true, TRUE);
1711 } else { 1702 } else {
1712 CFX_WideString wsValue = GetScriptContent(TRUE); 1703 CFX_WideString wsValue = GetScriptContent(TRUE);
1713 FXJSE_Value_SetBoolean(pValue, wsValue == FX_WSTRC(L"1")); 1704 pValue->SetBoolean(wsValue == FX_WSTRC(L"1"));
1714 } 1705 }
1715 } 1706 }
1716 struct XFA_ExecEventParaInfo { 1707 struct XFA_ExecEventParaInfo {
1717 public: 1708 public:
1718 uint32_t m_uHash; 1709 uint32_t m_uHash;
1719 const FX_WCHAR* m_lpcEventName; 1710 const FX_WCHAR* m_lpcEventName;
1720 XFA_EVENTTYPE m_eventType; 1711 XFA_EVENTTYPE m_eventType;
1721 uint32_t m_validFlags; 1712 uint32_t m_validFlags;
1722 }; 1713 };
1723 static const XFA_ExecEventParaInfo gs_eventParaInfos[] = { 1714 static const XFA_ExecEventParaInfo gs_eventParaInfos[] = {
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
1805 XFA_ATTRIBUTE eAttribute) { 1796 XFA_ATTRIBUTE eAttribute) {
1806 CXFA_WidgetData* pWidgetData = GetWidgetData(); 1797 CXFA_WidgetData* pWidgetData = GetWidgetData();
1807 if (!pWidgetData) { 1798 if (!pWidgetData) {
1808 return; 1799 return;
1809 } 1800 }
1810 CXFA_Border border = pWidgetData->GetBorder(TRUE); 1801 CXFA_Border border = pWidgetData->GetBorder(TRUE);
1811 int32_t iSize = border.CountEdges(); 1802 int32_t iSize = border.CountEdges();
1812 CFX_WideString strColor; 1803 CFX_WideString strColor;
1813 if (bSetting) { 1804 if (bSetting) {
1814 CFX_ByteString bsValue; 1805 CFX_ByteString bsValue;
1815 FXJSE_Value_ToUTF8String(pValue, bsValue); 1806 pValue->ToString(bsValue);
1816 strColor = CFX_WideString::FromUTF8(bsValue.AsStringC()); 1807 strColor = CFX_WideString::FromUTF8(bsValue.AsStringC());
1817 int32_t r = 0, g = 0, b = 0; 1808 int32_t r = 0, g = 0, b = 0;
1818 XFA_STRING_TO_RGB(strColor, r, g, b); 1809 XFA_STRING_TO_RGB(strColor, r, g, b);
1819 FX_ARGB rgb = ArgbEncode(100, r, g, b); 1810 FX_ARGB rgb = ArgbEncode(100, r, g, b);
1820 for (int32_t i = 0; i < iSize; ++i) { 1811 for (int32_t i = 0; i < iSize; ++i) {
1821 CXFA_Edge edge = border.GetEdge(i); 1812 CXFA_Edge edge = border.GetEdge(i);
1822 edge.SetColor(rgb); 1813 edge.SetColor(rgb);
1823 } 1814 }
1824 } else { 1815 } else {
1825 CXFA_Edge edge = border.GetEdge(0); 1816 CXFA_Edge edge = border.GetEdge(0);
1826 FX_ARGB color = edge.GetColor(); 1817 FX_ARGB color = edge.GetColor();
1827 int32_t a, r, g, b; 1818 int32_t a, r, g, b;
1828 ArgbDecode(color, a, r, g, b); 1819 ArgbDecode(color, a, r, g, b);
1829 strColor.Format(L"%d,%d,%d", r, g, b); 1820 strColor.Format(L"%d,%d,%d", r, g, b);
1830 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(strColor).AsStringC()); 1821 pValue->SetString(FX_UTF8Encode(strColor).AsStringC());
1831 } 1822 }
1832 } 1823 }
1833 void CXFA_Node::Script_Som_BorderWidth(CFXJSE_Value* pValue, 1824 void CXFA_Node::Script_Som_BorderWidth(CFXJSE_Value* pValue,
1834 FX_BOOL bSetting, 1825 FX_BOOL bSetting,
1835 XFA_ATTRIBUTE eAttribute) { 1826 XFA_ATTRIBUTE eAttribute) {
1836 CXFA_WidgetData* pWidgetData = GetWidgetData(); 1827 CXFA_WidgetData* pWidgetData = GetWidgetData();
1837 if (!pWidgetData) { 1828 if (!pWidgetData) {
1838 return; 1829 return;
1839 } 1830 }
1840 CXFA_Border border = pWidgetData->GetBorder(TRUE); 1831 CXFA_Border border = pWidgetData->GetBorder(TRUE);
1841 int32_t iSize = border.CountEdges(); 1832 int32_t iSize = border.CountEdges();
1842 CFX_WideString wsThickness; 1833 CFX_WideString wsThickness;
1843 if (bSetting) { 1834 if (bSetting) {
1844 CFX_ByteString bsValue; 1835 CFX_ByteString bsValue;
1845 FXJSE_Value_ToUTF8String(pValue, bsValue); 1836 pValue->ToString(bsValue);
1846 wsThickness = CFX_WideString::FromUTF8(bsValue.AsStringC()); 1837 wsThickness = CFX_WideString::FromUTF8(bsValue.AsStringC());
1847 for (int32_t i = 0; i < iSize; ++i) { 1838 for (int32_t i = 0; i < iSize; ++i) {
1848 CXFA_Edge edge = border.GetEdge(i); 1839 CXFA_Edge edge = border.GetEdge(i);
1849 CXFA_Measurement thickness(wsThickness.AsStringC()); 1840 CXFA_Measurement thickness(wsThickness.AsStringC());
1850 edge.SetMSThickness(thickness); 1841 edge.SetMSThickness(thickness);
1851 } 1842 }
1852 } else { 1843 } else {
1853 CXFA_Edge edge = border.GetEdge(0); 1844 CXFA_Edge edge = border.GetEdge(0);
1854 CXFA_Measurement thickness = edge.GetMSThickness(); 1845 CXFA_Measurement thickness = edge.GetMSThickness();
1855 thickness.ToString(wsThickness); 1846 thickness.ToString(wsThickness);
1856 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsThickness).AsStringC()); 1847 pValue->SetString(FX_UTF8Encode(wsThickness).AsStringC());
1857 } 1848 }
1858 } 1849 }
1859 void CXFA_Node::Script_Som_FillColor(CFXJSE_Value* pValue, 1850 void CXFA_Node::Script_Som_FillColor(CFXJSE_Value* pValue,
1860 FX_BOOL bSetting, 1851 FX_BOOL bSetting,
1861 XFA_ATTRIBUTE eAttribute) { 1852 XFA_ATTRIBUTE eAttribute) {
1862 CXFA_WidgetData* pWidgetData = GetWidgetData(); 1853 CXFA_WidgetData* pWidgetData = GetWidgetData();
1863 if (!pWidgetData) { 1854 if (!pWidgetData) {
1864 return; 1855 return;
1865 } 1856 }
1866 CXFA_Border border = pWidgetData->GetBorder(TRUE); 1857 CXFA_Border border = pWidgetData->GetBorder(TRUE);
1867 CXFA_Fill borderfill = border.GetFill(TRUE); 1858 CXFA_Fill borderfill = border.GetFill(TRUE);
1868 CXFA_Node* pNode = borderfill.GetNode(); 1859 CXFA_Node* pNode = borderfill.GetNode();
1869 if (!pNode) { 1860 if (!pNode) {
1870 return; 1861 return;
1871 } 1862 }
1872 CFX_WideString wsColor; 1863 CFX_WideString wsColor;
1873 if (bSetting) { 1864 if (bSetting) {
1874 CFX_ByteString bsValue; 1865 CFX_ByteString bsValue;
1875 FXJSE_Value_ToUTF8String(pValue, bsValue); 1866 pValue->ToString(bsValue);
1876 wsColor = CFX_WideString::FromUTF8(bsValue.AsStringC()); 1867 wsColor = CFX_WideString::FromUTF8(bsValue.AsStringC());
1877 int32_t r, g, b; 1868 int32_t r, g, b;
1878 XFA_STRING_TO_RGB(wsColor, r, g, b); 1869 XFA_STRING_TO_RGB(wsColor, r, g, b);
1879 FX_ARGB color = ArgbEncode(0xff, r, g, b); 1870 FX_ARGB color = ArgbEncode(0xff, r, g, b);
1880 borderfill.SetColor(color); 1871 borderfill.SetColor(color);
1881 } else { 1872 } else {
1882 FX_ARGB color = borderfill.GetColor(); 1873 FX_ARGB color = borderfill.GetColor();
1883 int32_t a, r, g, b; 1874 int32_t a, r, g, b;
1884 ArgbDecode(color, a, r, g, b); 1875 ArgbDecode(color, a, r, g, b);
1885 wsColor.Format(L"%d,%d,%d", r, g, b); 1876 wsColor.Format(L"%d,%d,%d", r, g, b);
1886 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsColor).AsStringC()); 1877 pValue->SetString(FX_UTF8Encode(wsColor).AsStringC());
1887 } 1878 }
1888 } 1879 }
1889 void CXFA_Node::Script_Som_DataNode(CFXJSE_Value* pValue, 1880 void CXFA_Node::Script_Som_DataNode(CFXJSE_Value* pValue,
1890 FX_BOOL bSetting, 1881 FX_BOOL bSetting,
1891 XFA_ATTRIBUTE eAttribute) { 1882 XFA_ATTRIBUTE eAttribute) {
1892 if (!bSetting) { 1883 if (!bSetting) {
1893 CXFA_Node* pDataNode = GetBindData(); 1884 CXFA_Node* pDataNode = GetBindData();
1894 if (pDataNode) { 1885 if (pDataNode) {
1895 FXJSE_Value_Set( 1886 pValue->Assign(
1896 pValue,
1897 m_pDocument->GetScriptContext()->GetJSValueFromMap(pDataNode)); 1887 m_pDocument->GetScriptContext()->GetJSValueFromMap(pDataNode));
1898 } else { 1888 } else {
1899 FXJSE_Value_SetNull(pValue); 1889 pValue->SetNull();
1900 } 1890 }
1901 } else { 1891 } else {
1902 ThrowException(XFA_IDS_INVAlID_PROP_SET); 1892 ThrowException(XFA_IDS_INVAlID_PROP_SET);
1903 } 1893 }
1904 } 1894 }
1905 void CXFA_Node::Script_Draw_DefaultValue(CFXJSE_Value* pValue, 1895 void CXFA_Node::Script_Draw_DefaultValue(CFXJSE_Value* pValue,
1906 FX_BOOL bSetting, 1896 FX_BOOL bSetting,
1907 XFA_ATTRIBUTE eAttribute) { 1897 XFA_ATTRIBUTE eAttribute) {
1908 if (bSetting) { 1898 if (bSetting) {
1909 if (FXJSE_Value_IsUTF8String(pValue)) { 1899 if (FXJSE_Value_IsUTF8String(pValue)) {
1910 CXFA_WidgetData* pWidgetData = GetWidgetData(); 1900 CXFA_WidgetData* pWidgetData = GetWidgetData();
1911 ASSERT(pWidgetData); 1901 ASSERT(pWidgetData);
1912 XFA_ELEMENT uiType = pWidgetData->GetUIType(); 1902 XFA_ELEMENT uiType = pWidgetData->GetUIType();
1913 if (uiType == XFA_ELEMENT_Text) { 1903 if (uiType == XFA_ELEMENT_Text) {
1914 CFX_ByteString newValue; 1904 CFX_ByteString newValue;
1915 FXJSE_Value_ToUTF8String(pValue, newValue); 1905 pValue->ToString(newValue);
1916 CFX_WideString wsNewValue = 1906 CFX_WideString wsNewValue =
1917 CFX_WideString::FromUTF8(newValue.AsStringC()); 1907 CFX_WideString::FromUTF8(newValue.AsStringC());
1918 CFX_WideString wsFormatValue(wsNewValue); 1908 CFX_WideString wsFormatValue(wsNewValue);
1919 SetScriptContent(wsNewValue, wsFormatValue, true, TRUE); 1909 SetScriptContent(wsNewValue, wsFormatValue, true, TRUE);
1920 } else if (uiType != XFA_ELEMENT_Image) { 1910 } else if (uiType != XFA_ELEMENT_Image) {
1921 } 1911 }
1922 } 1912 }
1923 } else { 1913 } else {
1924 CFX_WideString content = GetScriptContent(TRUE); 1914 CFX_WideString content = GetScriptContent(TRUE);
1925 if (content.IsEmpty()) { 1915 if (content.IsEmpty()) {
1926 FXJSE_Value_SetNull(pValue); 1916 pValue->SetNull();
1927 } else { 1917 } else {
1928 FXJSE_Value_SetUTF8String( 1918 pValue->SetString(
1929 pValue,
1930 FX_UTF8Encode(content.c_str(), content.GetLength()).AsStringC()); 1919 FX_UTF8Encode(content.c_str(), content.GetLength()).AsStringC());
1931 } 1920 }
1932 } 1921 }
1933 } 1922 }
1934 void CXFA_Node::Script_Field_DefaultValue(CFXJSE_Value* pValue, 1923 void CXFA_Node::Script_Field_DefaultValue(CFXJSE_Value* pValue,
1935 FX_BOOL bSetting, 1924 FX_BOOL bSetting,
1936 XFA_ATTRIBUTE eAttribute) { 1925 XFA_ATTRIBUTE eAttribute) {
1937 CXFA_WidgetData* pWidgetData = GetWidgetData(); 1926 CXFA_WidgetData* pWidgetData = GetWidgetData();
1938 if (!pWidgetData) { 1927 if (!pWidgetData) {
1939 return; 1928 return;
1940 } 1929 }
1941 if (bSetting) { 1930 if (bSetting) {
1942 if (FXJSE_Value_IsNull(pValue)) { 1931 if (FXJSE_Value_IsNull(pValue)) {
1943 pWidgetData->m_bPreNull = pWidgetData->m_bIsNull; 1932 pWidgetData->m_bPreNull = pWidgetData->m_bIsNull;
1944 pWidgetData->m_bIsNull = TRUE; 1933 pWidgetData->m_bIsNull = TRUE;
1945 } else { 1934 } else {
1946 pWidgetData->m_bPreNull = pWidgetData->m_bIsNull; 1935 pWidgetData->m_bPreNull = pWidgetData->m_bIsNull;
1947 pWidgetData->m_bIsNull = FALSE; 1936 pWidgetData->m_bIsNull = FALSE;
1948 } 1937 }
1949 CFX_ByteString newValue; 1938 CFX_ByteString newValue;
1950 if (!(FXJSE_Value_IsNull(pValue) || FXJSE_Value_IsUndefined(pValue))) { 1939 if (!(FXJSE_Value_IsNull(pValue) || FXJSE_Value_IsUndefined(pValue)))
1951 FXJSE_Value_ToUTF8String(pValue, newValue); 1940 pValue->ToString(newValue);
1952 } 1941
1953 CFX_WideString wsNewText = CFX_WideString::FromUTF8(newValue.AsStringC()); 1942 CFX_WideString wsNewText = CFX_WideString::FromUTF8(newValue.AsStringC());
1954 CXFA_Node* pUIChild = pWidgetData->GetUIChild(); 1943 CXFA_Node* pUIChild = pWidgetData->GetUIChild();
1955 if (pUIChild->GetClassID() == XFA_ELEMENT_NumericEdit) { 1944 if (pUIChild->GetClassID() == XFA_ELEMENT_NumericEdit) {
1956 int32_t iLeadDigits = 0; 1945 int32_t iLeadDigits = 0;
1957 int32_t iFracDigits = 0; 1946 int32_t iFracDigits = 0;
1958 pWidgetData->GetLeadDigits(iLeadDigits); 1947 pWidgetData->GetLeadDigits(iLeadDigits);
1959 pWidgetData->GetFracDigits(iFracDigits); 1948 pWidgetData->GetFracDigits(iFracDigits);
1960 wsNewText = 1949 wsNewText =
1961 pWidgetData->NumericLimit(wsNewText, iLeadDigits, iFracDigits); 1950 pWidgetData->NumericLimit(wsNewText, iLeadDigits, iFracDigits);
1962 } 1951 }
1963 CXFA_WidgetData* pContainerWidgetData = GetContainerWidgetData(); 1952 CXFA_WidgetData* pContainerWidgetData = GetContainerWidgetData();
1964 CFX_WideString wsFormatText(wsNewText); 1953 CFX_WideString wsFormatText(wsNewText);
1965 if (pContainerWidgetData) { 1954 if (pContainerWidgetData) {
1966 pContainerWidgetData->GetFormatDataValue(wsNewText, wsFormatText); 1955 pContainerWidgetData->GetFormatDataValue(wsNewText, wsFormatText);
1967 } 1956 }
1968 SetScriptContent(wsNewText, wsFormatText, true, TRUE); 1957 SetScriptContent(wsNewText, wsFormatText, true, TRUE);
1969 } else { 1958 } else {
1970 CFX_WideString content = GetScriptContent(TRUE); 1959 CFX_WideString content = GetScriptContent(TRUE);
1971 if (content.IsEmpty()) { 1960 if (content.IsEmpty()) {
1972 FXJSE_Value_SetNull(pValue); 1961 pValue->SetNull();
1973 } else { 1962 } else {
1974 CXFA_Node* pUIChild = pWidgetData->GetUIChild(); 1963 CXFA_Node* pUIChild = pWidgetData->GetUIChild();
1975 XFA_ELEMENT eUI = pUIChild->GetClassID(); 1964 XFA_ELEMENT eUI = pUIChild->GetClassID();
1976 CXFA_Value defVal = pWidgetData->GetFormValue(); 1965 CXFA_Value defVal = pWidgetData->GetFormValue();
1977 CXFA_Node* pNode = defVal.GetNode()->GetNodeItem(XFA_NODEITEM_FirstChild); 1966 CXFA_Node* pNode = defVal.GetNode()->GetNodeItem(XFA_NODEITEM_FirstChild);
1978 if (pNode && pNode->GetClassID() == XFA_ELEMENT_Decimal) { 1967 if (pNode && pNode->GetClassID() == XFA_ELEMENT_Decimal) {
1979 if (eUI == XFA_ELEMENT_NumericEdit && 1968 if (eUI == XFA_ELEMENT_NumericEdit &&
1980 (pNode->GetInteger(XFA_ATTRIBUTE_FracDigits) == -1)) { 1969 (pNode->GetInteger(XFA_ATTRIBUTE_FracDigits) == -1)) {
1981 FXJSE_Value_SetUTF8String( 1970 pValue->SetString(
1982 pValue,
1983 FX_UTF8Encode(content.c_str(), content.GetLength()).AsStringC()); 1971 FX_UTF8Encode(content.c_str(), content.GetLength()).AsStringC());
1984 } else { 1972 } else {
1985 CFX_Decimal decimal(content.AsStringC()); 1973 CFX_Decimal decimal(content.AsStringC());
1986 FXJSE_Value_SetFloat(pValue, (FX_FLOAT)(double)decimal); 1974 pValue->SetFloat((FX_FLOAT)(double)decimal);
1987 } 1975 }
1988 } else if (pNode && pNode->GetClassID() == XFA_ELEMENT_Integer) { 1976 } else if (pNode && pNode->GetClassID() == XFA_ELEMENT_Integer) {
1989 FXJSE_Value_SetInteger(pValue, FXSYS_wtoi(content.c_str())); 1977 pValue->SetInteger(FXSYS_wtoi(content.c_str()));
1990 } else if (pNode && pNode->GetClassID() == XFA_ELEMENT_Boolean) { 1978 } else if (pNode && pNode->GetClassID() == XFA_ELEMENT_Boolean) {
1991 FXJSE_Value_SetBoolean(pValue, 1979 pValue->SetBoolean(FXSYS_wtoi(content.c_str()) == 0 ? FALSE : TRUE);
1992 FXSYS_wtoi(content.c_str()) == 0 ? FALSE : TRUE);
1993 } else if (pNode && pNode->GetClassID() == XFA_ELEMENT_Float) { 1980 } else if (pNode && pNode->GetClassID() == XFA_ELEMENT_Float) {
1994 CFX_Decimal decimal(content.AsStringC()); 1981 CFX_Decimal decimal(content.AsStringC());
1995 FXJSE_Value_SetFloat(pValue, (FX_FLOAT)(double)decimal); 1982 pValue->SetFloat((FX_FLOAT)(double)decimal);
1996 } else { 1983 } else {
1997 FXJSE_Value_SetUTF8String( 1984 pValue->SetString(
1998 pValue,
1999 FX_UTF8Encode(content.c_str(), content.GetLength()).AsStringC()); 1985 FX_UTF8Encode(content.c_str(), content.GetLength()).AsStringC());
2000 } 1986 }
2001 } 1987 }
2002 } 1988 }
2003 } 1989 }
2004 void CXFA_Node::Script_Field_EditValue(CFXJSE_Value* pValue, 1990 void CXFA_Node::Script_Field_EditValue(CFXJSE_Value* pValue,
2005 FX_BOOL bSetting, 1991 FX_BOOL bSetting,
2006 XFA_ATTRIBUTE eAttribute) { 1992 XFA_ATTRIBUTE eAttribute) {
2007 CXFA_WidgetData* pWidgetData = GetWidgetData(); 1993 CXFA_WidgetData* pWidgetData = GetWidgetData();
2008 if (!pWidgetData) { 1994 if (!pWidgetData) {
2009 return; 1995 return;
2010 } 1996 }
2011 CFX_WideString wsValue; 1997 CFX_WideString wsValue;
2012 if (bSetting) { 1998 if (bSetting) {
2013 CFX_ByteString bsValue; 1999 CFX_ByteString bsValue;
2014 FXJSE_Value_ToUTF8String(pValue, bsValue); 2000 pValue->ToString(bsValue);
2015 wsValue = CFX_WideString::FromUTF8(bsValue.AsStringC()); 2001 wsValue = CFX_WideString::FromUTF8(bsValue.AsStringC());
2016 pWidgetData->SetValue(wsValue, XFA_VALUEPICTURE_Edit); 2002 pWidgetData->SetValue(wsValue, XFA_VALUEPICTURE_Edit);
2017 } else { 2003 } else {
2018 pWidgetData->GetValue(wsValue, XFA_VALUEPICTURE_Edit); 2004 pWidgetData->GetValue(wsValue, XFA_VALUEPICTURE_Edit);
2019 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsValue).AsStringC()); 2005 pValue->SetString(FX_UTF8Encode(wsValue).AsStringC());
2020 } 2006 }
2021 } 2007 }
2022 void CXFA_Node::Script_Som_FontColor(CFXJSE_Value* pValue, 2008 void CXFA_Node::Script_Som_FontColor(CFXJSE_Value* pValue,
2023 FX_BOOL bSetting, 2009 FX_BOOL bSetting,
2024 XFA_ATTRIBUTE eAttribute) { 2010 XFA_ATTRIBUTE eAttribute) {
2025 CXFA_WidgetData* pWidgetData = GetWidgetData(); 2011 CXFA_WidgetData* pWidgetData = GetWidgetData();
2026 if (!pWidgetData) { 2012 if (!pWidgetData) {
2027 return; 2013 return;
2028 } 2014 }
2029 CXFA_Font font = pWidgetData->GetFont(TRUE); 2015 CXFA_Font font = pWidgetData->GetFont(TRUE);
2030 CXFA_Node* pNode = font.GetNode(); 2016 CXFA_Node* pNode = font.GetNode();
2031 if (!pNode) { 2017 if (!pNode) {
2032 return; 2018 return;
2033 } 2019 }
2034 CFX_WideString wsColor; 2020 CFX_WideString wsColor;
2035 if (bSetting) { 2021 if (bSetting) {
2036 CFX_ByteString bsValue; 2022 CFX_ByteString bsValue;
2037 FXJSE_Value_ToUTF8String(pValue, bsValue); 2023 pValue->ToString(bsValue);
2038 wsColor = CFX_WideString::FromUTF8(bsValue.AsStringC()); 2024 wsColor = CFX_WideString::FromUTF8(bsValue.AsStringC());
2039 int32_t r, g, b; 2025 int32_t r, g, b;
2040 XFA_STRING_TO_RGB(wsColor, r, g, b); 2026 XFA_STRING_TO_RGB(wsColor, r, g, b);
2041 FX_ARGB color = ArgbEncode(0xff, r, g, b); 2027 FX_ARGB color = ArgbEncode(0xff, r, g, b);
2042 font.SetColor(color); 2028 font.SetColor(color);
2043 } else { 2029 } else {
2044 FX_ARGB color = font.GetColor(); 2030 FX_ARGB color = font.GetColor();
2045 int32_t a, r, g, b; 2031 int32_t a, r, g, b;
2046 ArgbDecode(color, a, r, g, b); 2032 ArgbDecode(color, a, r, g, b);
2047 wsColor.Format(L"%d,%d,%d", r, g, b); 2033 wsColor.Format(L"%d,%d,%d", r, g, b);
2048 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsColor).AsStringC()); 2034 pValue->SetString(FX_UTF8Encode(wsColor).AsStringC());
2049 } 2035 }
2050 } 2036 }
2051 void CXFA_Node::Script_Field_FormatMessage(CFXJSE_Value* pValue, 2037 void CXFA_Node::Script_Field_FormatMessage(CFXJSE_Value* pValue,
2052 FX_BOOL bSetting, 2038 FX_BOOL bSetting,
2053 XFA_ATTRIBUTE eAttribute) { 2039 XFA_ATTRIBUTE eAttribute) {
2054 Script_Som_Message(pValue, bSetting, XFA_SOM_FormatMessage); 2040 Script_Som_Message(pValue, bSetting, XFA_SOM_FormatMessage);
2055 } 2041 }
2056 void CXFA_Node::Script_Field_FormattedValue(CFXJSE_Value* pValue, 2042 void CXFA_Node::Script_Field_FormattedValue(CFXJSE_Value* pValue,
2057 FX_BOOL bSetting, 2043 FX_BOOL bSetting,
2058 XFA_ATTRIBUTE eAttribute) { 2044 XFA_ATTRIBUTE eAttribute) {
2059 CXFA_WidgetData* pWidgetData = GetWidgetData(); 2045 CXFA_WidgetData* pWidgetData = GetWidgetData();
2060 if (!pWidgetData) { 2046 if (!pWidgetData) {
2061 return; 2047 return;
2062 } 2048 }
2063 CFX_WideString wsValue; 2049 CFX_WideString wsValue;
2064 if (bSetting) { 2050 if (bSetting) {
2065 CFX_ByteString bsValue; 2051 CFX_ByteString bsValue;
2066 FXJSE_Value_ToUTF8String(pValue, bsValue); 2052 pValue->ToString(bsValue);
2067 wsValue = CFX_WideString::FromUTF8(bsValue.AsStringC()); 2053 wsValue = CFX_WideString::FromUTF8(bsValue.AsStringC());
2068 pWidgetData->SetValue(wsValue, XFA_VALUEPICTURE_Display); 2054 pWidgetData->SetValue(wsValue, XFA_VALUEPICTURE_Display);
2069 } else { 2055 } else {
2070 pWidgetData->GetValue(wsValue, XFA_VALUEPICTURE_Display); 2056 pWidgetData->GetValue(wsValue, XFA_VALUEPICTURE_Display);
2071 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsValue).AsStringC()); 2057 pValue->SetString(FX_UTF8Encode(wsValue).AsStringC());
2072 } 2058 }
2073 } 2059 }
2074 void CXFA_Node::Script_Som_Mandatory(CFXJSE_Value* pValue, 2060 void CXFA_Node::Script_Som_Mandatory(CFXJSE_Value* pValue,
2075 FX_BOOL bSetting, 2061 FX_BOOL bSetting,
2076 XFA_ATTRIBUTE eAttribute) { 2062 XFA_ATTRIBUTE eAttribute) {
2077 CXFA_WidgetData* pWidgetData = GetWidgetData(); 2063 CXFA_WidgetData* pWidgetData = GetWidgetData();
2078 if (!pWidgetData) { 2064 if (!pWidgetData) {
2079 return; 2065 return;
2080 } 2066 }
2081 CXFA_Validate validate = pWidgetData->GetValidate(TRUE); 2067 CXFA_Validate validate = pWidgetData->GetValidate(TRUE);
2082 CFX_WideString wsValue; 2068 CFX_WideString wsValue;
2083 if (bSetting) { 2069 if (bSetting) {
2084 CFX_ByteString bsValue; 2070 CFX_ByteString bsValue;
2085 FXJSE_Value_ToUTF8String(pValue, bsValue); 2071 pValue->ToString(bsValue);
2086 wsValue = CFX_WideString::FromUTF8(bsValue.AsStringC()); 2072 wsValue = CFX_WideString::FromUTF8(bsValue.AsStringC());
2087 validate.SetNullTest(wsValue); 2073 validate.SetNullTest(wsValue);
2088 } else { 2074 } else {
2089 int32_t iValue = validate.GetNullTest(); 2075 int32_t iValue = validate.GetNullTest();
2090 const XFA_ATTRIBUTEENUMINFO* pInfo = 2076 const XFA_ATTRIBUTEENUMINFO* pInfo =
2091 XFA_GetAttributeEnumByID((XFA_ATTRIBUTEENUM)iValue); 2077 XFA_GetAttributeEnumByID((XFA_ATTRIBUTEENUM)iValue);
2092 if (pInfo) { 2078 if (pInfo) {
2093 wsValue = pInfo->pName; 2079 wsValue = pInfo->pName;
2094 } 2080 }
2095 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsValue).AsStringC()); 2081 pValue->SetString(FX_UTF8Encode(wsValue).AsStringC());
2096 } 2082 }
2097 } 2083 }
2098 void CXFA_Node::Script_Som_MandatoryMessage(CFXJSE_Value* pValue, 2084 void CXFA_Node::Script_Som_MandatoryMessage(CFXJSE_Value* pValue,
2099 FX_BOOL bSetting, 2085 FX_BOOL bSetting,
2100 XFA_ATTRIBUTE eAttribute) { 2086 XFA_ATTRIBUTE eAttribute) {
2101 Script_Som_Message(pValue, bSetting, XFA_SOM_MandatoryMessage); 2087 Script_Som_Message(pValue, bSetting, XFA_SOM_MandatoryMessage);
2102 } 2088 }
2103 void CXFA_Node::Script_Field_ParentSubform(CFXJSE_Value* pValue, 2089 void CXFA_Node::Script_Field_ParentSubform(CFXJSE_Value* pValue,
2104 FX_BOOL bSetting, 2090 FX_BOOL bSetting,
2105 XFA_ATTRIBUTE eAttribute) { 2091 XFA_ATTRIBUTE eAttribute) {
2106 if (bSetting) { 2092 if (bSetting) {
2107 ThrowException(XFA_IDS_INVAlID_PROP_SET); 2093 ThrowException(XFA_IDS_INVAlID_PROP_SET);
2108 } else { 2094 } else {
2109 FXJSE_Value_SetNull(pValue); 2095 pValue->SetNull();
2110 } 2096 }
2111 } 2097 }
2112 void CXFA_Node::Script_Field_SelectedIndex(CFXJSE_Value* pValue, 2098 void CXFA_Node::Script_Field_SelectedIndex(CFXJSE_Value* pValue,
2113 FX_BOOL bSetting, 2099 FX_BOOL bSetting,
2114 XFA_ATTRIBUTE eAttribute) { 2100 XFA_ATTRIBUTE eAttribute) {
2115 CXFA_WidgetData* pWidgetData = GetWidgetData(); 2101 CXFA_WidgetData* pWidgetData = GetWidgetData();
2116 if (!pWidgetData) { 2102 if (!pWidgetData) {
2117 return; 2103 return;
2118 } 2104 }
2119 if (bSetting) { 2105 if (bSetting) {
2120 int32_t iIndex = FXJSE_Value_ToInteger(pValue); 2106 int32_t iIndex = pValue->ToInteger();
2121 if (iIndex == -1) { 2107 if (iIndex == -1) {
2122 pWidgetData->ClearAllSelections(); 2108 pWidgetData->ClearAllSelections();
2123 return; 2109 return;
2124 } 2110 }
2125 pWidgetData->SetItemState(iIndex, TRUE, true, TRUE, TRUE); 2111 pWidgetData->SetItemState(iIndex, TRUE, true, TRUE, TRUE);
2126 } else { 2112 } else {
2127 FXJSE_Value_SetInteger(pValue, pWidgetData->GetSelectedItem()); 2113 pValue->SetInteger(pWidgetData->GetSelectedItem());
2128 } 2114 }
2129 } 2115 }
2130 void CXFA_Node::Script_Field_ClearItems(CFXJSE_Arguments* pArguments) { 2116 void CXFA_Node::Script_Field_ClearItems(CFXJSE_Arguments* pArguments) {
2131 CXFA_WidgetData* pWidgetData = GetWidgetData(); 2117 CXFA_WidgetData* pWidgetData = GetWidgetData();
2132 if (!pWidgetData) { 2118 if (!pWidgetData) {
2133 return; 2119 return;
2134 } 2120 }
2135 pWidgetData->DeleteItem(-1, TRUE); 2121 pWidgetData->DeleteItem(-1, TRUE);
2136 } 2122 }
2137 void CXFA_Node::Script_Field_ExecEvent(CFXJSE_Arguments* pArguments) { 2123 void CXFA_Node::Script_Field_ExecEvent(CFXJSE_Arguments* pArguments) {
2138 int32_t argc = pArguments->GetLength(); 2124 int32_t argc = pArguments->GetLength();
2139 if (argc == 1) { 2125 if (argc == 1) {
2140 CFX_ByteString eventString = pArguments->GetUTF8String(0); 2126 CFX_ByteString eventString = pArguments->GetUTF8String(0);
2141 int32_t iRet = execSingleEventByName( 2127 int32_t iRet = execSingleEventByName(
2142 CFX_WideString::FromUTF8(eventString.AsStringC()).AsStringC(), 2128 CFX_WideString::FromUTF8(eventString.AsStringC()).AsStringC(),
2143 XFA_ELEMENT_Field); 2129 XFA_ELEMENT_Field);
2144 if (eventString == "validate") { 2130 if (eventString == "validate") {
2145 FXJSE_Value_SetBoolean(pArguments->GetReturnValue(), 2131 pArguments->GetReturnValue()->SetBoolean(
2146 ((iRet == XFA_EVENTERROR_Error) ? FALSE : TRUE)); 2132 (iRet == XFA_EVENTERROR_Error) ? FALSE : TRUE);
2147 } 2133 }
2148 } else { 2134 } else {
2149 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execEvent"); 2135 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execEvent");
2150 } 2136 }
2151 } 2137 }
2152 void CXFA_Node::Script_Field_ExecInitialize(CFXJSE_Arguments* pArguments) { 2138 void CXFA_Node::Script_Field_ExecInitialize(CFXJSE_Arguments* pArguments) {
2153 int32_t argc = pArguments->GetLength(); 2139 int32_t argc = pArguments->GetLength();
2154 if (argc == 0) { 2140 if (argc == 0) {
2155 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); 2141 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify();
2156 if (!pNotify) { 2142 if (!pNotify) {
(...skipping 10 matching lines...) Expand all
2167 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"deleteItem"); 2153 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"deleteItem");
2168 return; 2154 return;
2169 } 2155 }
2170 CXFA_WidgetData* pWidgetData = GetWidgetData(); 2156 CXFA_WidgetData* pWidgetData = GetWidgetData();
2171 if (!pWidgetData) { 2157 if (!pWidgetData) {
2172 return; 2158 return;
2173 } 2159 }
2174 int32_t iIndex = pArguments->GetInt32(0); 2160 int32_t iIndex = pArguments->GetInt32(0);
2175 FX_BOOL bValue = pWidgetData->DeleteItem(iIndex, TRUE, TRUE); 2161 FX_BOOL bValue = pWidgetData->DeleteItem(iIndex, TRUE, TRUE);
2176 CFXJSE_Value* pValue = pArguments->GetReturnValue(); 2162 CFXJSE_Value* pValue = pArguments->GetReturnValue();
2177 if (pValue) { 2163 if (pValue)
2178 FXJSE_Value_SetBoolean(pValue, bValue); 2164 pValue->SetBoolean(bValue);
2179 }
2180 } 2165 }
2181 void CXFA_Node::Script_Field_GetSaveItem(CFXJSE_Arguments* pArguments) { 2166 void CXFA_Node::Script_Field_GetSaveItem(CFXJSE_Arguments* pArguments) {
2182 int32_t iLength = pArguments->GetLength(); 2167 int32_t iLength = pArguments->GetLength();
2183 if (iLength != 1) { 2168 if (iLength != 1) {
2184 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"getSaveItem"); 2169 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"getSaveItem");
2185 return; 2170 return;
2186 } 2171 }
2187 int32_t iIndex = pArguments->GetInt32(0); 2172 int32_t iIndex = pArguments->GetInt32(0);
2188 if (iIndex < 0) { 2173 if (iIndex < 0) {
2189 FXJSE_Value_SetNull(pArguments->GetReturnValue()); 2174 pArguments->GetReturnValue()->SetNull();
2190 return; 2175 return;
2191 } 2176 }
2192 CXFA_WidgetData* pWidgetData = GetWidgetData(); 2177 CXFA_WidgetData* pWidgetData = GetWidgetData();
2193 if (!pWidgetData) { 2178 if (!pWidgetData) {
2194 FXJSE_Value_SetNull(pArguments->GetReturnValue()); 2179 pArguments->GetReturnValue()->SetNull();
2195 return; 2180 return;
2196 } 2181 }
2197 CFX_WideString wsValue; 2182 CFX_WideString wsValue;
2198 FX_BOOL bHasItem = pWidgetData->GetChoiceListItem(wsValue, iIndex, TRUE); 2183 FX_BOOL bHasItem = pWidgetData->GetChoiceListItem(wsValue, iIndex, TRUE);
2199 if (bHasItem) { 2184 if (bHasItem) {
2200 FXJSE_Value_SetUTF8String( 2185 pArguments->GetReturnValue()->SetString(
2201 pArguments->GetReturnValue(),
2202 FX_UTF8Encode(wsValue.c_str(), wsValue.GetLength()).AsStringC()); 2186 FX_UTF8Encode(wsValue.c_str(), wsValue.GetLength()).AsStringC());
2203 } else { 2187 } else {
2204 FXJSE_Value_SetNull(pArguments->GetReturnValue()); 2188 pArguments->GetReturnValue()->SetNull();
2205 } 2189 }
2206 } 2190 }
2207 void CXFA_Node::Script_Field_BoundItem(CFXJSE_Arguments* pArguments) { 2191 void CXFA_Node::Script_Field_BoundItem(CFXJSE_Arguments* pArguments) {
2208 int32_t iLength = pArguments->GetLength(); 2192 int32_t iLength = pArguments->GetLength();
2209 if (iLength != 1) { 2193 if (iLength != 1) {
2210 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"boundItem"); 2194 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"boundItem");
2211 return; 2195 return;
2212 } 2196 }
2213 CXFA_WidgetData* pWidgetData = GetWidgetData(); 2197 CXFA_WidgetData* pWidgetData = GetWidgetData();
2214 if (!pWidgetData) { 2198 if (!pWidgetData) {
2215 return; 2199 return;
2216 } 2200 }
2217 CFX_ByteString bsValue = pArguments->GetUTF8String(0); 2201 CFX_ByteString bsValue = pArguments->GetUTF8String(0);
2218 CFX_WideString wsValue = CFX_WideString::FromUTF8(bsValue.AsStringC()); 2202 CFX_WideString wsValue = CFX_WideString::FromUTF8(bsValue.AsStringC());
2219 CFX_WideString wsBoundValue; 2203 CFX_WideString wsBoundValue;
2220 pWidgetData->GetItemValue(wsValue.AsStringC(), wsBoundValue); 2204 pWidgetData->GetItemValue(wsValue.AsStringC(), wsBoundValue);
2221 CFXJSE_Value* pValue = pArguments->GetReturnValue(); 2205 CFXJSE_Value* pValue = pArguments->GetReturnValue();
2222 if (pValue) { 2206 if (pValue)
2223 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsBoundValue).AsStringC()); 2207 pValue->SetString(FX_UTF8Encode(wsBoundValue).AsStringC());
2224 }
2225 } 2208 }
2226 void CXFA_Node::Script_Field_GetItemState(CFXJSE_Arguments* pArguments) { 2209 void CXFA_Node::Script_Field_GetItemState(CFXJSE_Arguments* pArguments) {
2227 int32_t iLength = pArguments->GetLength(); 2210 int32_t iLength = pArguments->GetLength();
2228 if (iLength != 1) { 2211 if (iLength != 1) {
2229 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"getItemState"); 2212 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"getItemState");
2230 return; 2213 return;
2231 } 2214 }
2232 CXFA_WidgetData* pWidgetData = GetWidgetData(); 2215 CXFA_WidgetData* pWidgetData = GetWidgetData();
2233 if (!pWidgetData) { 2216 if (!pWidgetData) {
2234 return; 2217 return;
2235 } 2218 }
2236 int32_t iIndex = pArguments->GetInt32(0); 2219 int32_t iIndex = pArguments->GetInt32(0);
2237 FX_BOOL bValue = pWidgetData->GetItemState(iIndex); 2220 FX_BOOL bValue = pWidgetData->GetItemState(iIndex);
2238 CFXJSE_Value* pValue = pArguments->GetReturnValue(); 2221 CFXJSE_Value* pValue = pArguments->GetReturnValue();
2239 if (pValue) { 2222 if (pValue)
2240 FXJSE_Value_SetBoolean(pValue, bValue); 2223 pValue->SetBoolean(bValue);
2241 }
2242 } 2224 }
2243 void CXFA_Node::Script_Field_ExecCalculate(CFXJSE_Arguments* pArguments) { 2225 void CXFA_Node::Script_Field_ExecCalculate(CFXJSE_Arguments* pArguments) {
2244 int32_t argc = pArguments->GetLength(); 2226 int32_t argc = pArguments->GetLength();
2245 if (argc == 0) { 2227 if (argc == 0) {
2246 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); 2228 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify();
2247 if (!pNotify) { 2229 if (!pNotify) {
2248 return; 2230 return;
2249 } 2231 }
2250 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Calculate, FALSE, FALSE); 2232 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Calculate, FALSE, FALSE);
2251 } else { 2233 } else {
2252 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execCalculate"); 2234 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execCalculate");
2253 } 2235 }
2254 } 2236 }
2255 void CXFA_Node::Script_Field_SetItems(CFXJSE_Arguments* pArguments) {} 2237 void CXFA_Node::Script_Field_SetItems(CFXJSE_Arguments* pArguments) {}
2256 void CXFA_Node::Script_Field_GetDisplayItem(CFXJSE_Arguments* pArguments) { 2238 void CXFA_Node::Script_Field_GetDisplayItem(CFXJSE_Arguments* pArguments) {
2257 int32_t iLength = pArguments->GetLength(); 2239 int32_t iLength = pArguments->GetLength();
2258 if (iLength != 1) { 2240 if (iLength != 1) {
2259 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"getDisplayItem"); 2241 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"getDisplayItem");
2260 return; 2242 return;
2261 } 2243 }
2262 int32_t iIndex = pArguments->GetInt32(0); 2244 int32_t iIndex = pArguments->GetInt32(0);
2263 if (iIndex < 0) { 2245 if (iIndex < 0) {
2264 FXJSE_Value_SetNull(pArguments->GetReturnValue()); 2246 pArguments->GetReturnValue()->SetNull();
2265 return; 2247 return;
2266 } 2248 }
2267 CXFA_WidgetData* pWidgetData = GetWidgetData(); 2249 CXFA_WidgetData* pWidgetData = GetWidgetData();
2268 if (!pWidgetData) { 2250 if (!pWidgetData) {
2269 FXJSE_Value_SetNull(pArguments->GetReturnValue()); 2251 pArguments->GetReturnValue()->SetNull();
2270 return; 2252 return;
2271 } 2253 }
2272 CFX_WideString wsValue; 2254 CFX_WideString wsValue;
2273 FX_BOOL bHasItem = pWidgetData->GetChoiceListItem(wsValue, iIndex, FALSE); 2255 FX_BOOL bHasItem = pWidgetData->GetChoiceListItem(wsValue, iIndex, FALSE);
2274 if (bHasItem) { 2256 if (bHasItem) {
2275 FXJSE_Value_SetUTF8String( 2257 pArguments->GetReturnValue()->SetString(
2276 pArguments->GetReturnValue(),
2277 FX_UTF8Encode(wsValue.c_str(), wsValue.GetLength()).AsStringC()); 2258 FX_UTF8Encode(wsValue.c_str(), wsValue.GetLength()).AsStringC());
2278 } else { 2259 } else {
2279 FXJSE_Value_SetNull(pArguments->GetReturnValue()); 2260 pArguments->GetReturnValue()->SetNull();
2280 } 2261 }
2281 } 2262 }
2282 void CXFA_Node::Script_Field_SetItemState(CFXJSE_Arguments* pArguments) { 2263 void CXFA_Node::Script_Field_SetItemState(CFXJSE_Arguments* pArguments) {
2283 int32_t iLength = pArguments->GetLength(); 2264 int32_t iLength = pArguments->GetLength();
2284 if (iLength != 2) { 2265 if (iLength != 2) {
2285 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"setItemState"); 2266 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"setItemState");
2286 return; 2267 return;
2287 } 2268 }
2288 CXFA_WidgetData* pWidgetData = GetWidgetData(); 2269 CXFA_WidgetData* pWidgetData = GetWidgetData();
2289 if (!pWidgetData) 2270 if (!pWidgetData)
(...skipping 27 matching lines...) Expand all
2317 CFX_ByteString bsValue = pArguments->GetUTF8String(1); 2298 CFX_ByteString bsValue = pArguments->GetUTF8String(1);
2318 wsValue = CFX_WideString::FromUTF8(bsValue.AsStringC()); 2299 wsValue = CFX_WideString::FromUTF8(bsValue.AsStringC());
2319 } 2300 }
2320 pWidgetData->InsertItem(wsLabel, wsValue, -1, TRUE); 2301 pWidgetData->InsertItem(wsLabel, wsValue, -1, TRUE);
2321 } 2302 }
2322 void CXFA_Node::Script_Field_ExecValidate(CFXJSE_Arguments* pArguments) { 2303 void CXFA_Node::Script_Field_ExecValidate(CFXJSE_Arguments* pArguments) {
2323 int32_t argc = pArguments->GetLength(); 2304 int32_t argc = pArguments->GetLength();
2324 if (argc == 0) { 2305 if (argc == 0) {
2325 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); 2306 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify();
2326 if (!pNotify) { 2307 if (!pNotify) {
2327 FXJSE_Value_SetBoolean(pArguments->GetReturnValue(), FALSE); 2308 pArguments->GetReturnValue()->SetBoolean(FALSE);
2328 } else { 2309 } else {
2329 int32_t iRet = 2310 int32_t iRet =
2330 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Validate, FALSE, FALSE); 2311 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Validate, FALSE, FALSE);
2331 FXJSE_Value_SetBoolean(pArguments->GetReturnValue(), 2312 pArguments->GetReturnValue()->SetBoolean(
2332 ((iRet == XFA_EVENTERROR_Error) ? FALSE : TRUE)); 2313 (iRet == XFA_EVENTERROR_Error) ? FALSE : TRUE);
2333 } 2314 }
2334 } else { 2315 } else {
2335 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execValidate"); 2316 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execValidate");
2336 } 2317 }
2337 } 2318 }
2338 void CXFA_Node::Script_ExclGroup_ErrorText(CFXJSE_Value* pValue, 2319 void CXFA_Node::Script_ExclGroup_ErrorText(CFXJSE_Value* pValue,
2339 FX_BOOL bSetting, 2320 FX_BOOL bSetting,
2340 XFA_ATTRIBUTE eAttribute) { 2321 XFA_ATTRIBUTE eAttribute) {
2341 if (!bSetting) { 2322 if (!bSetting) {
2342 } else { 2323 } else {
2343 ThrowException(XFA_IDS_INVAlID_PROP_SET); 2324 ThrowException(XFA_IDS_INVAlID_PROP_SET);
2344 } 2325 }
2345 } 2326 }
2346 void CXFA_Node::Script_ExclGroup_DefaultAndRawValue(CFXJSE_Value* pValue, 2327 void CXFA_Node::Script_ExclGroup_DefaultAndRawValue(CFXJSE_Value* pValue,
2347 FX_BOOL bSetting, 2328 FX_BOOL bSetting,
2348 XFA_ATTRIBUTE eAttribute) { 2329 XFA_ATTRIBUTE eAttribute) {
2349 CXFA_WidgetData* pWidgetData = GetWidgetData(); 2330 CXFA_WidgetData* pWidgetData = GetWidgetData();
2350 if (!pWidgetData) { 2331 if (!pWidgetData) {
2351 return; 2332 return;
2352 } 2333 }
2353 if (bSetting) { 2334 if (bSetting) {
2354 CFX_ByteString bsValue; 2335 CFX_ByteString bsValue;
2355 FXJSE_Value_ToUTF8String(pValue, bsValue); 2336 pValue->ToString(bsValue);
2356 pWidgetData->SetSelectedMemberByValue( 2337 pWidgetData->SetSelectedMemberByValue(
2357 CFX_WideString::FromUTF8(bsValue.AsStringC()).AsStringC(), true, TRUE, 2338 CFX_WideString::FromUTF8(bsValue.AsStringC()).AsStringC(), true, TRUE,
2358 TRUE); 2339 TRUE);
2359 } else { 2340 } else {
2360 CFX_WideString wsValue = GetScriptContent(TRUE); 2341 CFX_WideString wsValue = GetScriptContent(TRUE);
2361 XFA_VERSION curVersion = GetDocument()->GetCurVersionMode(); 2342 XFA_VERSION curVersion = GetDocument()->GetCurVersionMode();
2362 if (wsValue.IsEmpty() && curVersion >= XFA_VERSION_300) { 2343 if (wsValue.IsEmpty() && curVersion >= XFA_VERSION_300) {
2363 FXJSE_Value_SetNull(pValue); 2344 pValue->SetNull();
2364 } else { 2345 } else {
2365 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(wsValue).AsStringC()); 2346 pValue->SetString(FX_UTF8Encode(wsValue).AsStringC());
2366 } 2347 }
2367 } 2348 }
2368 } 2349 }
2369 void CXFA_Node::Script_ExclGroup_Transient(CFXJSE_Value* pValue, 2350 void CXFA_Node::Script_ExclGroup_Transient(CFXJSE_Value* pValue,
2370 FX_BOOL bSetting, 2351 FX_BOOL bSetting,
2371 XFA_ATTRIBUTE eAttribute) {} 2352 XFA_ATTRIBUTE eAttribute) {}
2372 void CXFA_Node::Script_ExclGroup_ExecEvent(CFXJSE_Arguments* pArguments) { 2353 void CXFA_Node::Script_ExclGroup_ExecEvent(CFXJSE_Arguments* pArguments) {
2373 int32_t argc = pArguments->GetLength(); 2354 int32_t argc = pArguments->GetLength();
2374 if (argc == 1) { 2355 if (argc == 1) {
2375 CFX_ByteString eventString = pArguments->GetUTF8String(0); 2356 CFX_ByteString eventString = pArguments->GetUTF8String(0);
2376 execSingleEventByName( 2357 execSingleEventByName(
2377 CFX_WideString::FromUTF8(eventString.AsStringC()).AsStringC(), 2358 CFX_WideString::FromUTF8(eventString.AsStringC()).AsStringC(),
2378 XFA_ELEMENT_ExclGroup); 2359 XFA_ELEMENT_ExclGroup);
2379 } else { 2360 } else {
2380 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execEvent"); 2361 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execEvent");
2381 } 2362 }
2382 } 2363 }
2383 2364
2384 void CXFA_Node::Script_ExclGroup_SelectedMember(CFXJSE_Arguments* pArguments) { 2365 void CXFA_Node::Script_ExclGroup_SelectedMember(CFXJSE_Arguments* pArguments) {
2385 int32_t argc = pArguments->GetLength(); 2366 int32_t argc = pArguments->GetLength();
2386 if (argc < 0 || argc > 1) { 2367 if (argc < 0 || argc > 1) {
2387 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"selectedMember"); 2368 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"selectedMember");
2388 return; 2369 return;
2389 } 2370 }
2390 2371
2391 CXFA_WidgetData* pWidgetData = GetWidgetData(); 2372 CXFA_WidgetData* pWidgetData = GetWidgetData();
2392 if (!pWidgetData) { 2373 if (!pWidgetData) {
2393 FXJSE_Value_SetNull(pArguments->GetReturnValue()); 2374 pArguments->GetReturnValue()->SetNull();
2394 return; 2375 return;
2395 } 2376 }
2396 2377
2397 CXFA_Node* pReturnNode = nullptr; 2378 CXFA_Node* pReturnNode = nullptr;
2398 if (argc == 0) { 2379 if (argc == 0) {
2399 pReturnNode = pWidgetData->GetSelectedMember(); 2380 pReturnNode = pWidgetData->GetSelectedMember();
2400 } else { 2381 } else {
2401 CFX_ByteString szName; 2382 CFX_ByteString szName;
2402 szName = pArguments->GetUTF8String(0); 2383 szName = pArguments->GetUTF8String(0);
2403 pReturnNode = pWidgetData->SetSelectedMember( 2384 pReturnNode = pWidgetData->SetSelectedMember(
2404 CFX_WideString::FromUTF8(szName.AsStringC()).AsStringC(), true); 2385 CFX_WideString::FromUTF8(szName.AsStringC()).AsStringC(), true);
2405 } 2386 }
2406 if (!pReturnNode) { 2387 if (!pReturnNode) {
2407 FXJSE_Value_SetNull(pArguments->GetReturnValue()); 2388 pArguments->GetReturnValue()->SetNull();
2408 return; 2389 return;
2409 } 2390 }
2410 FXJSE_Value_Set( 2391 pArguments->GetReturnValue()->Assign(
2411 pArguments->GetReturnValue(),
2412 m_pDocument->GetScriptContext()->GetJSValueFromMap(pReturnNode)); 2392 m_pDocument->GetScriptContext()->GetJSValueFromMap(pReturnNode));
2413 } 2393 }
2414 2394
2415 void CXFA_Node::Script_ExclGroup_ExecInitialize(CFXJSE_Arguments* pArguments) { 2395 void CXFA_Node::Script_ExclGroup_ExecInitialize(CFXJSE_Arguments* pArguments) {
2416 int32_t argc = pArguments->GetLength(); 2396 int32_t argc = pArguments->GetLength();
2417 if (argc == 0) { 2397 if (argc == 0) {
2418 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); 2398 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify();
2419 if (!pNotify) { 2399 if (!pNotify) {
2420 return; 2400 return;
2421 } 2401 }
(...skipping 12 matching lines...) Expand all
2434 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Calculate); 2414 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Calculate);
2435 } else { 2415 } else {
2436 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execCalculate"); 2416 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execCalculate");
2437 } 2417 }
2438 } 2418 }
2439 void CXFA_Node::Script_ExclGroup_ExecValidate(CFXJSE_Arguments* pArguments) { 2419 void CXFA_Node::Script_ExclGroup_ExecValidate(CFXJSE_Arguments* pArguments) {
2440 int32_t argc = pArguments->GetLength(); 2420 int32_t argc = pArguments->GetLength();
2441 if (argc == 0) { 2421 if (argc == 0) {
2442 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); 2422 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify();
2443 if (!pNotify) { 2423 if (!pNotify) {
2444 FXJSE_Value_SetBoolean(pArguments->GetReturnValue(), FALSE); 2424 pArguments->GetReturnValue()->SetBoolean(FALSE);
2445 } else { 2425 } else {
2446 int32_t iRet = pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Validate); 2426 int32_t iRet = pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Validate);
2447 FXJSE_Value_SetBoolean(pArguments->GetReturnValue(), 2427 pArguments->GetReturnValue()->SetBoolean(
2448 ((iRet == XFA_EVENTERROR_Error) ? FALSE : TRUE)); 2428 (iRet == XFA_EVENTERROR_Error) ? FALSE : TRUE);
2449 } 2429 }
2450 } else { 2430 } else {
2451 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execValidate"); 2431 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execValidate");
2452 } 2432 }
2453 } 2433 }
2454 static CXFA_Node* XFA_ScriptInstanceManager_GetItem(CXFA_Node* pInstMgrNode, 2434 static CXFA_Node* XFA_ScriptInstanceManager_GetItem(CXFA_Node* pInstMgrNode,
2455 int32_t iIndex) { 2435 int32_t iIndex) {
2456 ASSERT(pInstMgrNode); 2436 ASSERT(pInstMgrNode);
2457 int32_t iCount = 0; 2437 int32_t iCount = 0;
2458 uint32_t dwNameHash = 0; 2438 uint32_t dwNameHash = 0;
(...skipping 23 matching lines...) Expand all
2482 if (iCount > iIndex) { 2462 if (iCount > iIndex) {
2483 return pNode; 2463 return pNode;
2484 } 2464 }
2485 } 2465 }
2486 return nullptr; 2466 return nullptr;
2487 } 2467 }
2488 void CXFA_Node::Script_Som_InstanceIndex(CFXJSE_Value* pValue, 2468 void CXFA_Node::Script_Som_InstanceIndex(CFXJSE_Value* pValue,
2489 FX_BOOL bSetting, 2469 FX_BOOL bSetting,
2490 XFA_ATTRIBUTE eAttribute) { 2470 XFA_ATTRIBUTE eAttribute) {
2491 if (bSetting) { 2471 if (bSetting) {
2492 int32_t iTo = FXJSE_Value_ToInteger(pValue); 2472 int32_t iTo = pValue->ToInteger();
2493 int32_t iFrom = Subform_and_SubformSet_InstanceIndex(); 2473 int32_t iFrom = Subform_and_SubformSet_InstanceIndex();
2494 CXFA_Node* pManagerNode = nullptr; 2474 CXFA_Node* pManagerNode = nullptr;
2495 for (CXFA_Node* pNode = GetNodeItem(XFA_NODEITEM_PrevSibling); pNode; 2475 for (CXFA_Node* pNode = GetNodeItem(XFA_NODEITEM_PrevSibling); pNode;
2496 pNode = pNode->GetNodeItem(XFA_NODEITEM_PrevSibling)) { 2476 pNode = pNode->GetNodeItem(XFA_NODEITEM_PrevSibling)) {
2497 if (pNode->GetClassID() == XFA_ELEMENT_InstanceManager) { 2477 if (pNode->GetClassID() == XFA_ELEMENT_InstanceManager) {
2498 pManagerNode = pNode; 2478 pManagerNode = pNode;
2499 break; 2479 break;
2500 } 2480 }
2501 } 2481 }
2502 if (pManagerNode) { 2482 if (pManagerNode) {
2503 pManagerNode->InstanceManager_MoveInstance(iTo, iFrom); 2483 pManagerNode->InstanceManager_MoveInstance(iTo, iFrom);
2504 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); 2484 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify();
2505 if (!pNotify) { 2485 if (!pNotify) {
2506 return; 2486 return;
2507 } 2487 }
2508 CXFA_Node* pToInstance = 2488 CXFA_Node* pToInstance =
2509 XFA_ScriptInstanceManager_GetItem(pManagerNode, iTo); 2489 XFA_ScriptInstanceManager_GetItem(pManagerNode, iTo);
2510 if (pToInstance && pToInstance->GetClassID() == XFA_ELEMENT_Subform) { 2490 if (pToInstance && pToInstance->GetClassID() == XFA_ELEMENT_Subform) {
2511 pNotify->RunSubformIndexChange(pToInstance); 2491 pNotify->RunSubformIndexChange(pToInstance);
2512 } 2492 }
2513 CXFA_Node* pFromInstance = 2493 CXFA_Node* pFromInstance =
2514 XFA_ScriptInstanceManager_GetItem(pManagerNode, iFrom); 2494 XFA_ScriptInstanceManager_GetItem(pManagerNode, iFrom);
2515 if (pFromInstance && pFromInstance->GetClassID() == XFA_ELEMENT_Subform) { 2495 if (pFromInstance && pFromInstance->GetClassID() == XFA_ELEMENT_Subform) {
2516 pNotify->RunSubformIndexChange(pFromInstance); 2496 pNotify->RunSubformIndexChange(pFromInstance);
2517 } 2497 }
2518 } 2498 }
2519 } else { 2499 } else {
2520 FXJSE_Value_SetInteger(pValue, Subform_and_SubformSet_InstanceIndex()); 2500 pValue->SetInteger(Subform_and_SubformSet_InstanceIndex());
2521 } 2501 }
2522 } 2502 }
2523 void CXFA_Node::Script_Subform_InstanceManager(CFXJSE_Value* pValue, 2503 void CXFA_Node::Script_Subform_InstanceManager(CFXJSE_Value* pValue,
2524 FX_BOOL bSetting, 2504 FX_BOOL bSetting,
2525 XFA_ATTRIBUTE eAttribute) { 2505 XFA_ATTRIBUTE eAttribute) {
2526 if (!bSetting) { 2506 if (!bSetting) {
2527 CFX_WideStringC wsName = GetCData(XFA_ATTRIBUTE_Name); 2507 CFX_WideStringC wsName = GetCData(XFA_ATTRIBUTE_Name);
2528 CXFA_Node* pInstanceMgr = nullptr; 2508 CXFA_Node* pInstanceMgr = nullptr;
2529 for (CXFA_Node* pNode = GetNodeItem(XFA_NODEITEM_PrevSibling); pNode; 2509 for (CXFA_Node* pNode = GetNodeItem(XFA_NODEITEM_PrevSibling); pNode;
2530 pNode = pNode->GetNodeItem(XFA_NODEITEM_PrevSibling)) { 2510 pNode = pNode->GetNodeItem(XFA_NODEITEM_PrevSibling)) {
2531 if (pNode->GetClassID() == XFA_ELEMENT_InstanceManager) { 2511 if (pNode->GetClassID() == XFA_ELEMENT_InstanceManager) {
2532 CFX_WideStringC wsInstMgrName = pNode->GetCData(XFA_ATTRIBUTE_Name); 2512 CFX_WideStringC wsInstMgrName = pNode->GetCData(XFA_ATTRIBUTE_Name);
2533 if (wsInstMgrName.GetLength() >= 1 && wsInstMgrName.GetAt(0) == '_' && 2513 if (wsInstMgrName.GetLength() >= 1 && wsInstMgrName.GetAt(0) == '_' &&
2534 wsInstMgrName.Mid(1) == wsName) { 2514 wsInstMgrName.Mid(1) == wsName) {
2535 pInstanceMgr = pNode; 2515 pInstanceMgr = pNode;
2536 } 2516 }
2537 break; 2517 break;
2538 } 2518 }
2539 } 2519 }
2540 if (pInstanceMgr) { 2520 if (pInstanceMgr) {
2541 FXJSE_Value_Set( 2521 pValue->Assign(
2542 pValue,
2543 m_pDocument->GetScriptContext()->GetJSValueFromMap(pInstanceMgr)); 2522 m_pDocument->GetScriptContext()->GetJSValueFromMap(pInstanceMgr));
2544 } else { 2523 } else {
2545 FXJSE_Value_SetNull(pValue); 2524 pValue->SetNull();
2546 } 2525 }
2547 } else { 2526 } else {
2548 ThrowException(XFA_IDS_INVAlID_PROP_SET); 2527 ThrowException(XFA_IDS_INVAlID_PROP_SET);
2549 } 2528 }
2550 } 2529 }
2551 void CXFA_Node::Script_Subform_Locale(CFXJSE_Value* pValue, 2530 void CXFA_Node::Script_Subform_Locale(CFXJSE_Value* pValue,
2552 FX_BOOL bSetting, 2531 FX_BOOL bSetting,
2553 XFA_ATTRIBUTE eAttribute) { 2532 XFA_ATTRIBUTE eAttribute) {
2554 if (bSetting) { 2533 if (bSetting) {
2555 CFX_ByteString bsLocaleName; 2534 CFX_ByteString bsLocaleName;
2556 FXJSE_Value_ToUTF8String(pValue, bsLocaleName); 2535 pValue->ToString(bsLocaleName);
2557 SetCData(XFA_ATTRIBUTE_Locale, 2536 SetCData(XFA_ATTRIBUTE_Locale,
2558 CFX_WideString::FromUTF8(bsLocaleName.AsStringC()), true, TRUE); 2537 CFX_WideString::FromUTF8(bsLocaleName.AsStringC()), true, TRUE);
2559 } else { 2538 } else {
2560 CFX_WideString wsLocaleName; 2539 CFX_WideString wsLocaleName;
2561 GetLocaleName(wsLocaleName); 2540 GetLocaleName(wsLocaleName);
2562 FXJSE_Value_SetUTF8String( 2541 pValue->SetString(
2563 pValue, FX_UTF8Encode(wsLocaleName.c_str(), wsLocaleName.GetLength()) 2542 FX_UTF8Encode(wsLocaleName.c_str(), wsLocaleName.GetLength())
2564 .AsStringC()); 2543 .AsStringC());
2565 } 2544 }
2566 } 2545 }
2567 void CXFA_Node::Script_Subform_ExecEvent(CFXJSE_Arguments* pArguments) { 2546 void CXFA_Node::Script_Subform_ExecEvent(CFXJSE_Arguments* pArguments) {
2568 int32_t argc = pArguments->GetLength(); 2547 int32_t argc = pArguments->GetLength();
2569 if (argc == 1) { 2548 if (argc == 1) {
2570 CFX_ByteString eventString = pArguments->GetUTF8String(0); 2549 CFX_ByteString eventString = pArguments->GetUTF8String(0);
2571 execSingleEventByName( 2550 execSingleEventByName(
2572 CFX_WideString::FromUTF8(eventString.AsStringC()).AsStringC(), 2551 CFX_WideString::FromUTF8(eventString.AsStringC()).AsStringC(),
2573 XFA_ELEMENT_Subform); 2552 XFA_ELEMENT_Subform);
2574 } else { 2553 } else {
(...skipping 22 matching lines...) Expand all
2597 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Calculate); 2576 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Calculate);
2598 } else { 2577 } else {
2599 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execCalculate"); 2578 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execCalculate");
2600 } 2579 }
2601 } 2580 }
2602 void CXFA_Node::Script_Subform_ExecValidate(CFXJSE_Arguments* pArguments) { 2581 void CXFA_Node::Script_Subform_ExecValidate(CFXJSE_Arguments* pArguments) {
2603 int32_t argc = pArguments->GetLength(); 2582 int32_t argc = pArguments->GetLength();
2604 if (argc == 0) { 2583 if (argc == 0) {
2605 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); 2584 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify();
2606 if (!pNotify) { 2585 if (!pNotify) {
2607 FXJSE_Value_SetBoolean(pArguments->GetReturnValue(), FALSE); 2586 pArguments->GetReturnValue()->SetBoolean(FALSE);
2608 } else { 2587 } else {
2609 int32_t iRet = pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Validate); 2588 int32_t iRet = pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Validate);
2610 FXJSE_Value_SetBoolean(pArguments->GetReturnValue(), 2589 pArguments->GetReturnValue()->SetBoolean(
2611 ((iRet == XFA_EVENTERROR_Error) ? FALSE : TRUE)); 2590 (iRet == XFA_EVENTERROR_Error) ? FALSE : TRUE);
2612 } 2591 }
2613 } else { 2592 } else {
2614 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execValidate"); 2593 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execValidate");
2615 } 2594 }
2616 } 2595 }
2617 void CXFA_Node::Script_Subform_GetInvalidObjects(CFXJSE_Arguments* pArguments) { 2596 void CXFA_Node::Script_Subform_GetInvalidObjects(CFXJSE_Arguments* pArguments) {
2618 int32_t argc = pArguments->GetLength(); 2597 int32_t argc = pArguments->GetLength();
2619 if (argc == 0) { 2598 if (argc == 0) {
2620 } else { 2599 } else {
2621 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"getInvalidObjects"); 2600 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"getInvalidObjects");
2622 } 2601 }
2623 } 2602 }
2624 int32_t CXFA_Node::Subform_and_SubformSet_InstanceIndex() { 2603 int32_t CXFA_Node::Subform_and_SubformSet_InstanceIndex() {
2625 int32_t index = 0; 2604 int32_t index = 0;
2626 for (CXFA_Node* pNode = GetNodeItem(XFA_NODEITEM_PrevSibling); pNode; 2605 for (CXFA_Node* pNode = GetNodeItem(XFA_NODEITEM_PrevSibling); pNode;
2627 pNode = pNode->GetNodeItem(XFA_NODEITEM_PrevSibling)) { 2606 pNode = pNode->GetNodeItem(XFA_NODEITEM_PrevSibling)) {
2628 if ((pNode->GetClassID() == XFA_ELEMENT_Subform) || 2607 if ((pNode->GetClassID() == XFA_ELEMENT_Subform) ||
2629 (pNode->GetClassID() == XFA_ELEMENT_SubformSet)) { 2608 (pNode->GetClassID() == XFA_ELEMENT_SubformSet)) {
2630 index++; 2609 index++;
2631 } else { 2610 } else {
2632 break; 2611 break;
2633 } 2612 }
2634 } 2613 }
2635 return index; 2614 return index;
2636 } 2615 }
2637 void CXFA_Node::Script_Template_FormNodes(CFXJSE_Arguments* pArguments) { 2616 void CXFA_Node::Script_Template_FormNodes(CFXJSE_Arguments* pArguments) {
2638 int32_t argc = pArguments->GetLength(); 2617 int32_t argc = pArguments->GetLength();
2639 if (argc == 1) { 2618 if (argc == 1) {
2640 FXJSE_Value_SetBoolean(pArguments->GetReturnValue(), TRUE); 2619 pArguments->GetReturnValue()->SetBoolean(TRUE);
2641 } else { 2620 } else {
2642 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"formNodes"); 2621 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"formNodes");
2643 } 2622 }
2644 } 2623 }
2645 void CXFA_Node::Script_Template_Remerge(CFXJSE_Arguments* pArguments) { 2624 void CXFA_Node::Script_Template_Remerge(CFXJSE_Arguments* pArguments) {
2646 int32_t argc = pArguments->GetLength(); 2625 int32_t argc = pArguments->GetLength();
2647 if (argc == 0) { 2626 if (argc == 0) {
2648 m_pDocument->DoDataRemerge(TRUE); 2627 m_pDocument->DoDataRemerge(TRUE);
2649 } else { 2628 } else {
2650 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"remerge"); 2629 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"remerge");
2651 } 2630 }
2652 } 2631 }
2653 void CXFA_Node::Script_Template_ExecInitialize(CFXJSE_Arguments* pArguments) { 2632 void CXFA_Node::Script_Template_ExecInitialize(CFXJSE_Arguments* pArguments) {
2654 int32_t argc = pArguments->GetLength(); 2633 int32_t argc = pArguments->GetLength();
2655 if (argc == 0) { 2634 if (argc == 0) {
2656 CXFA_WidgetData* pWidgetData = GetWidgetData(); 2635 CXFA_WidgetData* pWidgetData = GetWidgetData();
2657 if (!pWidgetData) { 2636 if (!pWidgetData) {
2658 FXJSE_Value_SetBoolean(pArguments->GetReturnValue(), FALSE); 2637 pArguments->GetReturnValue()->SetBoolean(FALSE);
2659 } else { 2638 } else {
2660 FXJSE_Value_SetBoolean(pArguments->GetReturnValue(), TRUE); 2639 pArguments->GetReturnValue()->SetBoolean(TRUE);
2661 } 2640 }
2662 } else { 2641 } else {
2663 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execInitialize"); 2642 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execInitialize");
2664 } 2643 }
2665 } 2644 }
2666 void CXFA_Node::Script_Template_CreateNode(CFXJSE_Arguments* pArguments) { 2645 void CXFA_Node::Script_Template_CreateNode(CFXJSE_Arguments* pArguments) {
2667 int32_t argc = pArguments->GetLength(); 2646 int32_t argc = pArguments->GetLength();
2668 if ((argc > 0) && (argc < 4)) { 2647 if ((argc > 0) && (argc < 4)) {
2669 CFX_WideString strTagName; 2648 CFX_WideString strTagName;
2670 CFX_WideString strName; 2649 CFX_WideString strName;
2671 CFX_WideString strNameSpace; 2650 CFX_WideString strNameSpace;
2672 CFX_ByteString bsTagName = pArguments->GetUTF8String(0); 2651 CFX_ByteString bsTagName = pArguments->GetUTF8String(0);
2673 strTagName = CFX_WideString::FromUTF8(bsTagName.AsStringC()); 2652 strTagName = CFX_WideString::FromUTF8(bsTagName.AsStringC());
2674 if (argc > 1) { 2653 if (argc > 1) {
2675 CFX_ByteString bsName = pArguments->GetUTF8String(1); 2654 CFX_ByteString bsName = pArguments->GetUTF8String(1);
2676 strName = CFX_WideString::FromUTF8(bsName.AsStringC()); 2655 strName = CFX_WideString::FromUTF8(bsName.AsStringC());
2677 if (argc == 3) { 2656 if (argc == 3) {
2678 CFX_ByteString bsNameSpace = pArguments->GetUTF8String(2); 2657 CFX_ByteString bsNameSpace = pArguments->GetUTF8String(2);
2679 strNameSpace = CFX_WideString::FromUTF8(bsNameSpace.AsStringC()); 2658 strNameSpace = CFX_WideString::FromUTF8(bsNameSpace.AsStringC());
2680 } 2659 }
2681 } 2660 }
2682 const XFA_ELEMENTINFO* pElement = 2661 const XFA_ELEMENTINFO* pElement =
2683 XFA_GetElementByName(strTagName.AsStringC()); 2662 XFA_GetElementByName(strTagName.AsStringC());
2684 CXFA_Node* pNewNode = CreateSamePacketNode(pElement->eName); 2663 CXFA_Node* pNewNode = CreateSamePacketNode(pElement->eName);
2685 if (!pNewNode) { 2664 if (!pNewNode) {
2686 FXJSE_Value_SetNull(pArguments->GetReturnValue()); 2665 pArguments->GetReturnValue()->SetNull();
2687 } else { 2666 } else {
2688 if (!strName.IsEmpty()) { 2667 if (!strName.IsEmpty()) {
2689 if (XFA_GetAttributeOfElement(pElement->eName, XFA_ATTRIBUTE_Name, 2668 if (XFA_GetAttributeOfElement(pElement->eName, XFA_ATTRIBUTE_Name,
2690 XFA_XDPPACKET_UNKNOWN)) { 2669 XFA_XDPPACKET_UNKNOWN)) {
2691 pNewNode->SetAttribute(XFA_ATTRIBUTE_Name, strName.AsStringC(), true); 2670 pNewNode->SetAttribute(XFA_ATTRIBUTE_Name, strName.AsStringC(), true);
2692 if (pNewNode->GetPacketID() == XFA_XDPPACKET_Datasets) { 2671 if (pNewNode->GetPacketID() == XFA_XDPPACKET_Datasets) {
2693 pNewNode->CreateXMLMappingNode(); 2672 pNewNode->CreateXMLMappingNode();
2694 } 2673 }
2695 FXJSE_Value_Set( 2674 pArguments->GetReturnValue()->Assign(
2696 pArguments->GetReturnValue(),
2697 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNewNode)); 2675 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNewNode));
2698 } else { 2676 } else {
2699 ThrowException(XFA_IDS_NOT_HAVE_PROPERTY, strTagName.c_str(), 2677 ThrowException(XFA_IDS_NOT_HAVE_PROPERTY, strTagName.c_str(),
2700 L"name"); 2678 L"name");
2701 } 2679 }
2702 } else { 2680 } else {
2703 FXJSE_Value_Set( 2681 pArguments->GetReturnValue()->Assign(
2704 pArguments->GetReturnValue(),
2705 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNewNode)); 2682 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNewNode));
2706 } 2683 }
2707 } 2684 }
2708 } else { 2685 } else {
2709 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"createNode"); 2686 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"createNode");
2710 } 2687 }
2711 } 2688 }
2712 void CXFA_Node::Script_Template_Recalculate(CFXJSE_Arguments* pArguments) { 2689 void CXFA_Node::Script_Template_Recalculate(CFXJSE_Arguments* pArguments) {
2713 if (pArguments->GetLength() == 1) { 2690 if (pArguments->GetLength() == 1) {
2714 FXJSE_Value_SetBoolean(pArguments->GetReturnValue(), TRUE); 2691 pArguments->GetReturnValue()->SetBoolean(TRUE);
2715 } else { 2692 } else {
2716 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"recalculate"); 2693 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"recalculate");
2717 } 2694 }
2718 } 2695 }
2719 void CXFA_Node::Script_Template_ExecCalculate(CFXJSE_Arguments* pArguments) { 2696 void CXFA_Node::Script_Template_ExecCalculate(CFXJSE_Arguments* pArguments) {
2720 int32_t argc = pArguments->GetLength(); 2697 int32_t argc = pArguments->GetLength();
2721 if (argc == 0) { 2698 if (argc == 0) {
2722 CXFA_WidgetData* pWidgetData = GetWidgetData(); 2699 CXFA_WidgetData* pWidgetData = GetWidgetData();
2723 if (!pWidgetData) { 2700 if (!pWidgetData) {
2724 FXJSE_Value_SetBoolean(pArguments->GetReturnValue(), FALSE); 2701 pArguments->GetReturnValue()->SetBoolean(FALSE);
2725 } else { 2702 } else {
2726 FXJSE_Value_SetBoolean(pArguments->GetReturnValue(), TRUE); 2703 pArguments->GetReturnValue()->SetBoolean(TRUE);
2727 } 2704 }
2728 } else { 2705 } else {
2729 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execCalculate"); 2706 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execCalculate");
2730 } 2707 }
2731 } 2708 }
2732 void CXFA_Node::Script_Template_ExecValidate(CFXJSE_Arguments* pArguments) { 2709 void CXFA_Node::Script_Template_ExecValidate(CFXJSE_Arguments* pArguments) {
2733 int32_t argc = pArguments->GetLength(); 2710 int32_t argc = pArguments->GetLength();
2734 if (argc == 0) { 2711 if (argc == 0) {
2735 CXFA_WidgetData* pWidgetData = GetWidgetData(); 2712 CXFA_WidgetData* pWidgetData = GetWidgetData();
2736 if (!pWidgetData) { 2713 if (!pWidgetData) {
2737 FXJSE_Value_SetBoolean(pArguments->GetReturnValue(), FALSE); 2714 pArguments->GetReturnValue()->SetBoolean(FALSE);
2738 } else { 2715 } else {
2739 FXJSE_Value_SetBoolean(pArguments->GetReturnValue(), TRUE); 2716 pArguments->GetReturnValue()->SetBoolean(TRUE);
2740 } 2717 }
2741 } else { 2718 } else {
2742 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execValidate"); 2719 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execValidate");
2743 } 2720 }
2744 } 2721 }
2745 void CXFA_Node::Script_Manifest_Evaluate(CFXJSE_Arguments* pArguments) { 2722 void CXFA_Node::Script_Manifest_Evaluate(CFXJSE_Arguments* pArguments) {
2746 int32_t argc = pArguments->GetLength(); 2723 int32_t argc = pArguments->GetLength();
2747 if (argc == 0) { 2724 if (argc == 0) {
2748 CXFA_WidgetData* pWidgetData = GetWidgetData(); 2725 CXFA_WidgetData* pWidgetData = GetWidgetData();
2749 if (!pWidgetData) { 2726 if (!pWidgetData) {
2750 FXJSE_Value_SetBoolean(pArguments->GetReturnValue(), FALSE); 2727 pArguments->GetReturnValue()->SetBoolean(FALSE);
2751 } else { 2728 } else {
2752 FXJSE_Value_SetBoolean(pArguments->GetReturnValue(), TRUE); 2729 pArguments->GetReturnValue()->SetBoolean(TRUE);
2753 } 2730 }
2754 } else { 2731 } else {
2755 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"evaluate"); 2732 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"evaluate");
2756 } 2733 }
2757 } 2734 }
2758 void CXFA_Node::Script_InstanceManager_Max(CFXJSE_Value* pValue, 2735 void CXFA_Node::Script_InstanceManager_Max(CFXJSE_Value* pValue,
2759 FX_BOOL bSetting, 2736 FX_BOOL bSetting,
2760 XFA_ATTRIBUTE eAttribute) { 2737 XFA_ATTRIBUTE eAttribute) {
2761 if (bSetting) { 2738 if (bSetting) {
2762 ThrowException(XFA_IDS_INVAlID_PROP_SET); 2739 ThrowException(XFA_IDS_INVAlID_PROP_SET);
2763 return; 2740 return;
2764 } 2741 }
2765 CXFA_Occur nodeOccur(GetOccurNode()); 2742 CXFA_Occur nodeOccur(GetOccurNode());
2766 FXJSE_Value_SetInteger(pValue, nodeOccur.GetMax()); 2743 pValue->SetInteger(nodeOccur.GetMax());
2767 } 2744 }
2768 void CXFA_Node::Script_InstanceManager_Min(CFXJSE_Value* pValue, 2745 void CXFA_Node::Script_InstanceManager_Min(CFXJSE_Value* pValue,
2769 FX_BOOL bSetting, 2746 FX_BOOL bSetting,
2770 XFA_ATTRIBUTE eAttribute) { 2747 XFA_ATTRIBUTE eAttribute) {
2771 if (bSetting) { 2748 if (bSetting) {
2772 ThrowException(XFA_IDS_INVAlID_PROP_SET); 2749 ThrowException(XFA_IDS_INVAlID_PROP_SET);
2773 return; 2750 return;
2774 } 2751 }
2775 CXFA_Occur nodeOccur(GetOccurNode()); 2752 CXFA_Occur nodeOccur(GetOccurNode());
2776 FXJSE_Value_SetInteger(pValue, nodeOccur.GetMin()); 2753 pValue->SetInteger(nodeOccur.GetMin());
2777 } 2754 }
2778 static int32_t XFA_ScriptInstanceManager_GetCount(CXFA_Node* pInstMgrNode) { 2755 static int32_t XFA_ScriptInstanceManager_GetCount(CXFA_Node* pInstMgrNode) {
2779 ASSERT(pInstMgrNode); 2756 ASSERT(pInstMgrNode);
2780 int32_t iCount = 0; 2757 int32_t iCount = 0;
2781 uint32_t dwNameHash = 0; 2758 uint32_t dwNameHash = 0;
2782 for (CXFA_Node* pNode = pInstMgrNode->GetNodeItem(XFA_NODEITEM_NextSibling); 2759 for (CXFA_Node* pNode = pInstMgrNode->GetNodeItem(XFA_NODEITEM_NextSibling);
2783 pNode; pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { 2760 pNode; pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) {
2784 XFA_ELEMENT eCurType = pNode->GetClassID(); 2761 XFA_ELEMENT eCurType = pNode->GetClassID();
2785 if (eCurType == XFA_ELEMENT_InstanceManager) { 2762 if (eCurType == XFA_ELEMENT_InstanceManager) {
2786 break; 2763 break;
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
3045 if (pInstance) { 3022 if (pInstance) {
3046 pDocument->DataMerge_UpdateBindingRelations(pInstance); 3023 pDocument->DataMerge_UpdateBindingRelations(pInstance);
3047 pFormParent->RemoveChild(pInstance); 3024 pFormParent->RemoveChild(pInstance);
3048 } 3025 }
3049 return pInstance; 3026 return pInstance;
3050 } 3027 }
3051 void CXFA_Node::Script_InstanceManager_Count(CFXJSE_Value* pValue, 3028 void CXFA_Node::Script_InstanceManager_Count(CFXJSE_Value* pValue,
3052 FX_BOOL bSetting, 3029 FX_BOOL bSetting,
3053 XFA_ATTRIBUTE eAttribute) { 3030 XFA_ATTRIBUTE eAttribute) {
3054 if (bSetting) { 3031 if (bSetting) {
3055 int32_t iDesired = FXJSE_Value_ToInteger(pValue); 3032 int32_t iDesired = pValue->ToInteger();
3056 InstanceManager_SetInstances(iDesired); 3033 InstanceManager_SetInstances(iDesired);
3057 } else { 3034 } else {
3058 FXJSE_Value_SetInteger(pValue, XFA_ScriptInstanceManager_GetCount(this)); 3035 pValue->SetInteger(XFA_ScriptInstanceManager_GetCount(this));
3059 } 3036 }
3060 } 3037 }
3061 void CXFA_Node::Script_InstanceManager_MoveInstance( 3038 void CXFA_Node::Script_InstanceManager_MoveInstance(
3062 CFXJSE_Arguments* pArguments) { 3039 CFXJSE_Arguments* pArguments) {
3063 int32_t argc = pArguments->GetLength(); 3040 int32_t argc = pArguments->GetLength();
3064 if (argc != 2) { 3041 if (argc != 2) {
3065 FXJSE_Value_SetUndefined(pArguments->GetReturnValue()); 3042 pArguments->GetReturnValue()->SetUndefined();
3066 return; 3043 return;
3067 } 3044 }
3068 int32_t iFrom = pArguments->GetInt32(0); 3045 int32_t iFrom = pArguments->GetInt32(0);
3069 int32_t iTo = pArguments->GetInt32(1); 3046 int32_t iTo = pArguments->GetInt32(1);
3070 InstanceManager_MoveInstance(iTo, iFrom); 3047 InstanceManager_MoveInstance(iTo, iFrom);
3071 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); 3048 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify();
3072 if (!pNotify) { 3049 if (!pNotify) {
3073 return; 3050 return;
3074 } 3051 }
3075 CXFA_Node* pToInstance = XFA_ScriptInstanceManager_GetItem(this, iTo); 3052 CXFA_Node* pToInstance = XFA_ScriptInstanceManager_GetItem(this, iTo);
3076 if (pToInstance && pToInstance->GetClassID() == XFA_ELEMENT_Subform) { 3053 if (pToInstance && pToInstance->GetClassID() == XFA_ELEMENT_Subform) {
3077 pNotify->RunSubformIndexChange(pToInstance); 3054 pNotify->RunSubformIndexChange(pToInstance);
3078 } 3055 }
3079 CXFA_Node* pFromInstance = XFA_ScriptInstanceManager_GetItem(this, iFrom); 3056 CXFA_Node* pFromInstance = XFA_ScriptInstanceManager_GetItem(this, iFrom);
3080 if (pFromInstance && pFromInstance->GetClassID() == XFA_ELEMENT_Subform) { 3057 if (pFromInstance && pFromInstance->GetClassID() == XFA_ELEMENT_Subform) {
3081 pNotify->RunSubformIndexChange(pFromInstance); 3058 pNotify->RunSubformIndexChange(pFromInstance);
3082 } 3059 }
3083 } 3060 }
3084 void CXFA_Node::Script_InstanceManager_RemoveInstance( 3061 void CXFA_Node::Script_InstanceManager_RemoveInstance(
3085 CFXJSE_Arguments* pArguments) { 3062 CFXJSE_Arguments* pArguments) {
3086 int32_t argc = pArguments->GetLength(); 3063 int32_t argc = pArguments->GetLength();
3087 if (argc != 1) { 3064 if (argc != 1) {
3088 FXJSE_Value_SetUndefined(pArguments->GetReturnValue()); 3065 pArguments->GetReturnValue()->SetUndefined();
3089 return; 3066 return;
3090 } 3067 }
3091 int32_t iIndex = pArguments->GetInt32(0); 3068 int32_t iIndex = pArguments->GetInt32(0);
3092 int32_t iCount = XFA_ScriptInstanceManager_GetCount(this); 3069 int32_t iCount = XFA_ScriptInstanceManager_GetCount(this);
3093 if (iIndex < 0 || iIndex >= iCount) { 3070 if (iIndex < 0 || iIndex >= iCount) {
3094 ThrowException(XFA_IDS_INDEX_OUT_OF_BOUNDS); 3071 ThrowException(XFA_IDS_INDEX_OUT_OF_BOUNDS);
3095 return; 3072 return;
3096 } 3073 }
3097 CXFA_Occur nodeOccur(GetOccurNode()); 3074 CXFA_Occur nodeOccur(GetOccurNode());
3098 int32_t iMin = nodeOccur.GetMin(); 3075 int32_t iMin = nodeOccur.GetMin();
(...skipping 17 matching lines...) Expand all
3116 if (!pLayoutPro) { 3093 if (!pLayoutPro) {
3117 return; 3094 return;
3118 } 3095 }
3119 pLayoutPro->AddChangedContainer( 3096 pLayoutPro->AddChangedContainer(
3120 ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Form))); 3097 ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Form)));
3121 } 3098 }
3122 void CXFA_Node::Script_InstanceManager_SetInstances( 3099 void CXFA_Node::Script_InstanceManager_SetInstances(
3123 CFXJSE_Arguments* pArguments) { 3100 CFXJSE_Arguments* pArguments) {
3124 int32_t argc = pArguments->GetLength(); 3101 int32_t argc = pArguments->GetLength();
3125 if (argc != 1) { 3102 if (argc != 1) {
3126 FXJSE_Value_SetUndefined(pArguments->GetReturnValue()); 3103 pArguments->GetReturnValue()->SetUndefined();
3127 return; 3104 return;
3128 } 3105 }
3129 int32_t iDesired = pArguments->GetInt32(0); 3106 int32_t iDesired = pArguments->GetInt32(0);
3130 InstanceManager_SetInstances(iDesired); 3107 InstanceManager_SetInstances(iDesired);
3131 } 3108 }
3132 void CXFA_Node::Script_InstanceManager_AddInstance( 3109 void CXFA_Node::Script_InstanceManager_AddInstance(
3133 CFXJSE_Arguments* pArguments) { 3110 CFXJSE_Arguments* pArguments) {
3134 int32_t argc = pArguments->GetLength(); 3111 int32_t argc = pArguments->GetLength();
3135 if ((argc != 0) && (argc != 1)) { 3112 if ((argc != 0) && (argc != 1)) {
3136 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"addInstance"); 3113 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"addInstance");
3137 return; 3114 return;
3138 } 3115 }
3139 FX_BOOL fFlags = TRUE; 3116 FX_BOOL fFlags = TRUE;
3140 if (argc == 1) { 3117 if (argc == 1) {
3141 fFlags = pArguments->GetInt32(0) == 0 ? FALSE : TRUE; 3118 fFlags = pArguments->GetInt32(0) == 0 ? FALSE : TRUE;
3142 } 3119 }
3143 int32_t iCount = XFA_ScriptInstanceManager_GetCount(this); 3120 int32_t iCount = XFA_ScriptInstanceManager_GetCount(this);
3144 CXFA_Occur nodeOccur(GetOccurNode()); 3121 CXFA_Occur nodeOccur(GetOccurNode());
3145 int32_t iMax = nodeOccur.GetMax(); 3122 int32_t iMax = nodeOccur.GetMax();
3146 if (iMax >= 0 && iCount >= iMax) { 3123 if (iMax >= 0 && iCount >= iMax) {
3147 ThrowException(XFA_IDS_VIOLATE_BOUNDARY, L"max"); 3124 ThrowException(XFA_IDS_VIOLATE_BOUNDARY, L"max");
3148 return; 3125 return;
3149 } 3126 }
3150 CXFA_Node* pNewInstance = 3127 CXFA_Node* pNewInstance =
3151 XFA_ScriptInstanceManager_CreateInstance(this, fFlags); 3128 XFA_ScriptInstanceManager_CreateInstance(this, fFlags);
3152 XFA_ScriptInstanceManager_InsertItem(this, pNewInstance, iCount, iCount, 3129 XFA_ScriptInstanceManager_InsertItem(this, pNewInstance, iCount, iCount,
3153 FALSE); 3130 FALSE);
3154 FXJSE_Value_Set( 3131 pArguments->GetReturnValue()->Assign(
3155 pArguments->GetReturnValue(),
3156 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNewInstance)); 3132 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNewInstance));
3157 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); 3133 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify();
3158 if (!pNotify) { 3134 if (!pNotify) {
3159 return; 3135 return;
3160 } 3136 }
3161 pNotify->RunNodeInitialize(pNewInstance); 3137 pNotify->RunNodeInitialize(pNewInstance);
3162 CXFA_LayoutProcessor* pLayoutPro = m_pDocument->GetLayoutProcessor(); 3138 CXFA_LayoutProcessor* pLayoutPro = m_pDocument->GetLayoutProcessor();
3163 if (!pLayoutPro) { 3139 if (!pLayoutPro) {
3164 return; 3140 return;
3165 } 3141 }
(...skipping 20 matching lines...) Expand all
3186 } 3162 }
3187 int32_t iMax = nodeOccur.GetMax(); 3163 int32_t iMax = nodeOccur.GetMax();
3188 if (iMax >= 0 && iCount >= iMax) { 3164 if (iMax >= 0 && iCount >= iMax) {
3189 ThrowException(XFA_IDS_VIOLATE_BOUNDARY, L"max"); 3165 ThrowException(XFA_IDS_VIOLATE_BOUNDARY, L"max");
3190 return; 3166 return;
3191 } 3167 }
3192 CXFA_Node* pNewInstance = 3168 CXFA_Node* pNewInstance =
3193 XFA_ScriptInstanceManager_CreateInstance(this, bBind); 3169 XFA_ScriptInstanceManager_CreateInstance(this, bBind);
3194 XFA_ScriptInstanceManager_InsertItem(this, pNewInstance, iIndex, iCount, 3170 XFA_ScriptInstanceManager_InsertItem(this, pNewInstance, iIndex, iCount,
3195 TRUE); 3171 TRUE);
3196 FXJSE_Value_Set( 3172 pArguments->GetReturnValue()->Assign(
3197 pArguments->GetReturnValue(),
3198 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNewInstance)); 3173 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNewInstance));
3199 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); 3174 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify();
3200 if (!pNotify) { 3175 if (!pNotify) {
3201 return; 3176 return;
3202 } 3177 }
3203 pNotify->RunNodeInitialize(pNewInstance); 3178 pNotify->RunNodeInitialize(pNewInstance);
3204 CXFA_LayoutProcessor* pLayoutPro = m_pDocument->GetLayoutProcessor(); 3179 CXFA_LayoutProcessor* pLayoutPro = m_pDocument->GetLayoutProcessor();
3205 if (!pLayoutPro) { 3180 if (!pLayoutPro) {
3206 return; 3181 return;
3207 } 3182 }
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
3289 pLayoutPro->AddChangedContainer( 3264 pLayoutPro->AddChangedContainer(
3290 ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Form))); 3265 ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Form)));
3291 } 3266 }
3292 return 0; 3267 return 0;
3293 } 3268 }
3294 void CXFA_Node::Script_Occur_Max(CFXJSE_Value* pValue, 3269 void CXFA_Node::Script_Occur_Max(CFXJSE_Value* pValue,
3295 FX_BOOL bSetting, 3270 FX_BOOL bSetting,
3296 XFA_ATTRIBUTE eAttribute) { 3271 XFA_ATTRIBUTE eAttribute) {
3297 CXFA_Occur occur(this); 3272 CXFA_Occur occur(this);
3298 if (bSetting) { 3273 if (bSetting) {
3299 int32_t iMax = FXJSE_Value_ToInteger(pValue); 3274 int32_t iMax = pValue->ToInteger();
3300 occur.SetMax(iMax); 3275 occur.SetMax(iMax);
3301 } else { 3276 } else {
3302 FXJSE_Value_SetInteger(pValue, occur.GetMax()); 3277 pValue->SetInteger(occur.GetMax());
3303 } 3278 }
3304 } 3279 }
3305 void CXFA_Node::Script_Occur_Min(CFXJSE_Value* pValue, 3280 void CXFA_Node::Script_Occur_Min(CFXJSE_Value* pValue,
3306 FX_BOOL bSetting, 3281 FX_BOOL bSetting,
3307 XFA_ATTRIBUTE eAttribute) { 3282 XFA_ATTRIBUTE eAttribute) {
3308 CXFA_Occur occur(this); 3283 CXFA_Occur occur(this);
3309 if (bSetting) { 3284 if (bSetting) {
3310 int32_t iMin = FXJSE_Value_ToInteger(pValue); 3285 int32_t iMin = pValue->ToInteger();
3311 occur.SetMin(iMin); 3286 occur.SetMin(iMin);
3312 } else { 3287 } else {
3313 FXJSE_Value_SetInteger(pValue, occur.GetMin()); 3288 pValue->SetInteger(occur.GetMin());
3314 } 3289 }
3315 } 3290 }
3316 void CXFA_Node::Script_Desc_Metadata(CFXJSE_Arguments* pArguments) { 3291 void CXFA_Node::Script_Desc_Metadata(CFXJSE_Arguments* pArguments) {
3317 int32_t argc = pArguments->GetLength(); 3292 int32_t argc = pArguments->GetLength();
3318 if ((argc == 0) || (argc == 1)) { 3293 if ((argc == 0) || (argc == 1)) {
3319 FXJSE_Value_SetUTF8String(pArguments->GetReturnValue(), ""); 3294 pArguments->GetReturnValue()->SetString("");
3320 } else { 3295 } else {
3321 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"metadata"); 3296 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"metadata");
3322 } 3297 }
3323 } 3298 }
3324 void CXFA_Node::Script_Form_FormNodes(CFXJSE_Arguments* pArguments) { 3299 void CXFA_Node::Script_Form_FormNodes(CFXJSE_Arguments* pArguments) {
3325 int32_t argc = pArguments->GetLength(); 3300 int32_t argc = pArguments->GetLength();
3326 if (argc == 1) { 3301 if (argc == 1) {
3327 CXFA_Node* pDataNode = static_cast<CXFA_Node*>(pArguments->GetObject(0)); 3302 CXFA_Node* pDataNode = static_cast<CXFA_Node*>(pArguments->GetObject(0));
3328 if (pDataNode) { 3303 if (pDataNode) {
3329 CXFA_NodeArray formItems; 3304 CXFA_NodeArray formItems;
3330 CXFA_ArrayNodeList* pFormNodes = new CXFA_ArrayNodeList(m_pDocument); 3305 CXFA_ArrayNodeList* pFormNodes = new CXFA_ArrayNodeList(m_pDocument);
3331 pFormNodes->SetArrayNodeList(formItems); 3306 pFormNodes->SetArrayNodeList(formItems);
3332 FXJSE_Value_SetObject( 3307 pArguments->GetReturnValue()->SetObject(
3333 pArguments->GetReturnValue(), (CXFA_Object*)pFormNodes, 3308 pFormNodes, m_pDocument->GetScriptContext()->GetJseNormalClass());
3334 m_pDocument->GetScriptContext()->GetJseNormalClass());
3335 } else { 3309 } else {
3336 ThrowException(XFA_IDS_ARGUMENT_MISMATCH); 3310 ThrowException(XFA_IDS_ARGUMENT_MISMATCH);
3337 } 3311 }
3338 } else { 3312 } else {
3339 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"formNodes"); 3313 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"formNodes");
3340 } 3314 }
3341 } 3315 }
3342 void CXFA_Node::Script_Form_Remerge(CFXJSE_Arguments* pArguments) { 3316 void CXFA_Node::Script_Form_Remerge(CFXJSE_Arguments* pArguments) {
3343 int32_t argc = pArguments->GetLength(); 3317 int32_t argc = pArguments->GetLength();
3344 if (argc == 0) { 3318 if (argc == 0) {
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
3393 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Calculate); 3367 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Calculate);
3394 } else { 3368 } else {
3395 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execCalculate"); 3369 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execCalculate");
3396 } 3370 }
3397 } 3371 }
3398 void CXFA_Node::Script_Form_ExecValidate(CFXJSE_Arguments* pArguments) { 3372 void CXFA_Node::Script_Form_ExecValidate(CFXJSE_Arguments* pArguments) {
3399 int32_t argc = pArguments->GetLength(); 3373 int32_t argc = pArguments->GetLength();
3400 if (argc == 0) { 3374 if (argc == 0) {
3401 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); 3375 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify();
3402 if (!pNotify) { 3376 if (!pNotify) {
3403 FXJSE_Value_SetBoolean(pArguments->GetReturnValue(), FALSE); 3377 pArguments->GetReturnValue()->SetBoolean(FALSE);
3404 } else { 3378 } else {
3405 int32_t iRet = pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Validate); 3379 int32_t iRet = pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Validate);
3406 FXJSE_Value_SetBoolean(pArguments->GetReturnValue(), 3380 pArguments->GetReturnValue()->SetBoolean(
3407 ((iRet == XFA_EVENTERROR_Error) ? FALSE : TRUE)); 3381 (iRet == XFA_EVENTERROR_Error) ? FALSE : TRUE);
3408 } 3382 }
3409 } else { 3383 } else {
3410 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execValidate"); 3384 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execValidate");
3411 } 3385 }
3412 } 3386 }
3413 void CXFA_Node::Script_Form_Checksum(CFXJSE_Value* pValue, 3387 void CXFA_Node::Script_Form_Checksum(CFXJSE_Value* pValue,
3414 FX_BOOL bSetting, 3388 FX_BOOL bSetting,
3415 XFA_ATTRIBUTE eAttribute) { 3389 XFA_ATTRIBUTE eAttribute) {
3416 if (bSetting) { 3390 if (bSetting) {
3417 CFX_ByteString bsChecksum; 3391 CFX_ByteString bsChecksum;
3418 FXJSE_Value_ToUTF8String(pValue, bsChecksum); 3392 pValue->ToString(bsChecksum);
3419 SetAttribute(XFA_ATTRIBUTE_Checksum, 3393 SetAttribute(XFA_ATTRIBUTE_Checksum,
3420 CFX_WideString::FromUTF8(bsChecksum.AsStringC()).AsStringC()); 3394 CFX_WideString::FromUTF8(bsChecksum.AsStringC()).AsStringC());
3421 } else { 3395 } else {
3422 CFX_WideString wsChecksum; 3396 CFX_WideString wsChecksum;
3423 GetAttribute(XFA_ATTRIBUTE_Checksum, wsChecksum, FALSE); 3397 GetAttribute(XFA_ATTRIBUTE_Checksum, wsChecksum, FALSE);
3424 FXJSE_Value_SetUTF8String( 3398 pValue->SetString(
3425 pValue,
3426 FX_UTF8Encode(wsChecksum.c_str(), wsChecksum.GetLength()).AsStringC()); 3399 FX_UTF8Encode(wsChecksum.c_str(), wsChecksum.GetLength()).AsStringC());
3427 } 3400 }
3428 } 3401 }
3429 void CXFA_Node::Script_Packet_GetAttribute(CFXJSE_Arguments* pArguments) { 3402 void CXFA_Node::Script_Packet_GetAttribute(CFXJSE_Arguments* pArguments) {
3430 int32_t argc = pArguments->GetLength(); 3403 int32_t argc = pArguments->GetLength();
3431 if (argc == 1) { 3404 if (argc == 1) {
3432 CFX_ByteString bsAttributeName = pArguments->GetUTF8String(0); 3405 CFX_ByteString bsAttributeName = pArguments->GetUTF8String(0);
3433 CFX_WideString wsAttributeValue; 3406 CFX_WideString wsAttributeValue;
3434 CFDE_XMLNode* pXMLNode = GetXMLMappingNode(); 3407 CFDE_XMLNode* pXMLNode = GetXMLMappingNode();
3435 if (pXMLNode && pXMLNode->GetType() == FDE_XMLNODE_Element) { 3408 if (pXMLNode && pXMLNode->GetType() == FDE_XMLNODE_Element) {
3436 static_cast<CFDE_XMLElement*>(pXMLNode)->GetString( 3409 static_cast<CFDE_XMLElement*>(pXMLNode)->GetString(
3437 CFX_WideString::FromUTF8(bsAttributeName.AsStringC()).c_str(), 3410 CFX_WideString::FromUTF8(bsAttributeName.AsStringC()).c_str(),
3438 wsAttributeValue); 3411 wsAttributeValue);
3439 } 3412 }
3440 FXJSE_Value_SetUTF8String( 3413 pArguments->GetReturnValue()->SetString(
3441 pArguments->GetReturnValue(),
3442 FX_UTF8Encode(wsAttributeValue.c_str(), wsAttributeValue.GetLength()) 3414 FX_UTF8Encode(wsAttributeValue.c_str(), wsAttributeValue.GetLength())
3443 .AsStringC()); 3415 .AsStringC());
3444 } else { 3416 } else {
3445 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"getAttribute"); 3417 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"getAttribute");
3446 } 3418 }
3447 } 3419 }
3448 void CXFA_Node::Script_Packet_SetAttribute(CFXJSE_Arguments* pArguments) { 3420 void CXFA_Node::Script_Packet_SetAttribute(CFXJSE_Arguments* pArguments) {
3449 int32_t argc = pArguments->GetLength(); 3421 int32_t argc = pArguments->GetLength();
3450 if (argc == 2) { 3422 if (argc == 2) {
3451 CFX_ByteString bsValue = pArguments->GetUTF8String(0); 3423 CFX_ByteString bsValue = pArguments->GetUTF8String(0);
3452 CFX_ByteString bsName = pArguments->GetUTF8String(1); 3424 CFX_ByteString bsName = pArguments->GetUTF8String(1);
3453 CFDE_XMLNode* pXMLNode = GetXMLMappingNode(); 3425 CFDE_XMLNode* pXMLNode = GetXMLMappingNode();
3454 if (pXMLNode && pXMLNode->GetType() == FDE_XMLNODE_Element) { 3426 if (pXMLNode && pXMLNode->GetType() == FDE_XMLNODE_Element) {
3455 static_cast<CFDE_XMLElement*>(pXMLNode) 3427 static_cast<CFDE_XMLElement*>(pXMLNode)
3456 ->SetString(CFX_WideString::FromUTF8(bsName.AsStringC()), 3428 ->SetString(CFX_WideString::FromUTF8(bsName.AsStringC()),
3457 CFX_WideString::FromUTF8(bsValue.AsStringC())); 3429 CFX_WideString::FromUTF8(bsValue.AsStringC()));
3458 } 3430 }
3459 FXJSE_Value_SetNull(pArguments->GetReturnValue()); 3431 pArguments->GetReturnValue()->SetNull();
3460 } else { 3432 } else {
3461 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"setAttribute"); 3433 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"setAttribute");
3462 } 3434 }
3463 } 3435 }
3464 void CXFA_Node::Script_Packet_RemoveAttribute(CFXJSE_Arguments* pArguments) { 3436 void CXFA_Node::Script_Packet_RemoveAttribute(CFXJSE_Arguments* pArguments) {
3465 int32_t argc = pArguments->GetLength(); 3437 int32_t argc = pArguments->GetLength();
3466 if (argc == 1) { 3438 if (argc == 1) {
3467 CFX_ByteString bsName = pArguments->GetUTF8String(0); 3439 CFX_ByteString bsName = pArguments->GetUTF8String(0);
3468 CFX_WideString wsName = CFX_WideString::FromUTF8(bsName.AsStringC()); 3440 CFX_WideString wsName = CFX_WideString::FromUTF8(bsName.AsStringC());
3469 CFDE_XMLNode* pXMLNode = GetXMLMappingNode(); 3441 CFDE_XMLNode* pXMLNode = GetXMLMappingNode();
3470 if (pXMLNode && pXMLNode->GetType() == FDE_XMLNODE_Element) { 3442 if (pXMLNode && pXMLNode->GetType() == FDE_XMLNODE_Element) {
3471 CFDE_XMLElement* pXMLElement = static_cast<CFDE_XMLElement*>(pXMLNode); 3443 CFDE_XMLElement* pXMLElement = static_cast<CFDE_XMLElement*>(pXMLNode);
3472 if (pXMLElement->HasAttribute(wsName.c_str())) { 3444 if (pXMLElement->HasAttribute(wsName.c_str())) {
3473 pXMLElement->RemoveAttribute(wsName.c_str()); 3445 pXMLElement->RemoveAttribute(wsName.c_str());
3474 } 3446 }
3475 } 3447 }
3476 FXJSE_Value_SetNull(pArguments->GetReturnValue()); 3448 pArguments->GetReturnValue()->SetNull();
3477 } else { 3449 } else {
3478 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"removeAttribute"); 3450 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"removeAttribute");
3479 } 3451 }
3480 } 3452 }
3481 void CXFA_Node::Script_Packet_Content(CFXJSE_Value* pValue, 3453 void CXFA_Node::Script_Packet_Content(CFXJSE_Value* pValue,
3482 FX_BOOL bSetting, 3454 FX_BOOL bSetting,
3483 XFA_ATTRIBUTE eAttribute) { 3455 XFA_ATTRIBUTE eAttribute) {
3484 if (bSetting) { 3456 if (bSetting) {
3485 CFX_ByteString bsNewContent; 3457 CFX_ByteString bsNewContent;
3486 FXJSE_Value_ToUTF8String(pValue, bsNewContent); 3458 pValue->ToString(bsNewContent);
3487 CFDE_XMLNode* pXMLNode = GetXMLMappingNode(); 3459 CFDE_XMLNode* pXMLNode = GetXMLMappingNode();
3488 if (pXMLNode && pXMLNode->GetType() == FDE_XMLNODE_Element) { 3460 if (pXMLNode && pXMLNode->GetType() == FDE_XMLNODE_Element) {
3489 CFDE_XMLElement* pXMLElement = static_cast<CFDE_XMLElement*>(pXMLNode); 3461 CFDE_XMLElement* pXMLElement = static_cast<CFDE_XMLElement*>(pXMLNode);
3490 pXMLElement->SetTextData( 3462 pXMLElement->SetTextData(
3491 CFX_WideString::FromUTF8(bsNewContent.AsStringC())); 3463 CFX_WideString::FromUTF8(bsNewContent.AsStringC()));
3492 } 3464 }
3493 } else { 3465 } else {
3494 CFX_WideString wsTextData; 3466 CFX_WideString wsTextData;
3495 CFDE_XMLNode* pXMLNode = GetXMLMappingNode(); 3467 CFDE_XMLNode* pXMLNode = GetXMLMappingNode();
3496 if (pXMLNode && pXMLNode->GetType() == FDE_XMLNODE_Element) { 3468 if (pXMLNode && pXMLNode->GetType() == FDE_XMLNODE_Element) {
3497 CFDE_XMLElement* pXMLElement = static_cast<CFDE_XMLElement*>(pXMLNode); 3469 CFDE_XMLElement* pXMLElement = static_cast<CFDE_XMLElement*>(pXMLNode);
3498 pXMLElement->GetTextData(wsTextData); 3470 pXMLElement->GetTextData(wsTextData);
3499 } 3471 }
3500 FXJSE_Value_SetUTF8String( 3472 pValue->SetString(
3501 pValue,
3502 FX_UTF8Encode(wsTextData.c_str(), wsTextData.GetLength()).AsStringC()); 3473 FX_UTF8Encode(wsTextData.c_str(), wsTextData.GetLength()).AsStringC());
3503 } 3474 }
3504 } 3475 }
3505 void CXFA_Node::Script_Source_Next(CFXJSE_Arguments* pArguments) { 3476 void CXFA_Node::Script_Source_Next(CFXJSE_Arguments* pArguments) {
3506 int32_t argc = pArguments->GetLength(); 3477 int32_t argc = pArguments->GetLength();
3507 if (argc == 0) { 3478 if (argc == 0) {
3508 } else { 3479 } else {
3509 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"next"); 3480 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"next");
3510 } 3481 }
3511 } 3482 }
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
3623 } 3594 }
3624 void CXFA_Node::Script_Source_Db(CFXJSE_Value* pValue, 3595 void CXFA_Node::Script_Source_Db(CFXJSE_Value* pValue,
3625 FX_BOOL bSetting, 3596 FX_BOOL bSetting,
3626 XFA_ATTRIBUTE eAttribute) {} 3597 XFA_ATTRIBUTE eAttribute) {}
3627 void CXFA_Node::Script_Xfa_This(CFXJSE_Value* pValue, 3598 void CXFA_Node::Script_Xfa_This(CFXJSE_Value* pValue,
3628 FX_BOOL bSetting, 3599 FX_BOOL bSetting,
3629 XFA_ATTRIBUTE eAttribute) { 3600 XFA_ATTRIBUTE eAttribute) {
3630 if (!bSetting) { 3601 if (!bSetting) {
3631 CXFA_Object* pThis = m_pDocument->GetScriptContext()->GetThisObject(); 3602 CXFA_Object* pThis = m_pDocument->GetScriptContext()->GetThisObject();
3632 ASSERT(pThis); 3603 ASSERT(pThis);
3633 FXJSE_Value_Set(pValue, 3604 pValue->Assign(m_pDocument->GetScriptContext()->GetJSValueFromMap(pThis));
3634 m_pDocument->GetScriptContext()->GetJSValueFromMap(pThis));
3635 } 3605 }
3636 } 3606 }
3637 void CXFA_Node::Script_Handler_Version(CFXJSE_Value* pValue, 3607 void CXFA_Node::Script_Handler_Version(CFXJSE_Value* pValue,
3638 FX_BOOL bSetting, 3608 FX_BOOL bSetting,
3639 XFA_ATTRIBUTE eAttribute) {} 3609 XFA_ATTRIBUTE eAttribute) {}
3640 void CXFA_Node::Script_SubmitFormat_Mode(CFXJSE_Value* pValue, 3610 void CXFA_Node::Script_SubmitFormat_Mode(CFXJSE_Value* pValue,
3641 FX_BOOL bSetting, 3611 FX_BOOL bSetting,
3642 XFA_ATTRIBUTE eAttribute) {} 3612 XFA_ATTRIBUTE eAttribute) {}
3643 void CXFA_Node::Script_Extras_Type(CFXJSE_Value* pValue, 3613 void CXFA_Node::Script_Extras_Type(CFXJSE_Value* pValue,
3644 FX_BOOL bSetting, 3614 FX_BOOL bSetting,
3645 XFA_ATTRIBUTE eAttribute) {} 3615 XFA_ATTRIBUTE eAttribute) {}
3646 void CXFA_Node::Script_Script_Stateless(CFXJSE_Value* pValue, 3616 void CXFA_Node::Script_Script_Stateless(CFXJSE_Value* pValue,
3647 FX_BOOL bSetting, 3617 FX_BOOL bSetting,
3648 XFA_ATTRIBUTE eAttribute) { 3618 XFA_ATTRIBUTE eAttribute) {
3649 if (bSetting) { 3619 if (bSetting) {
3650 ThrowException(XFA_IDS_INVAlID_PROP_SET); 3620 ThrowException(XFA_IDS_INVAlID_PROP_SET);
3651 return; 3621 return;
3652 } 3622 }
3653 FXJSE_Value_SetUTF8String(pValue, FX_UTF8Encode(FX_WSTRC(L"0")).AsStringC()); 3623 pValue->SetString(FX_UTF8Encode(FX_WSTRC(L"0")).AsStringC());
3654 } 3624 }
3655 void CXFA_Node::Script_Encrypt_Format(CFXJSE_Value* pValue, 3625 void CXFA_Node::Script_Encrypt_Format(CFXJSE_Value* pValue,
3656 FX_BOOL bSetting, 3626 FX_BOOL bSetting,
3657 XFA_ATTRIBUTE eAttribute) {} 3627 XFA_ATTRIBUTE eAttribute) {}
3658 enum XFA_KEYTYPE { 3628 enum XFA_KEYTYPE {
3659 XFA_KEYTYPE_Custom, 3629 XFA_KEYTYPE_Custom,
3660 XFA_KEYTYPE_Element, 3630 XFA_KEYTYPE_Element,
3661 }; 3631 };
3662 void* XFA_GetMapKey_Custom(const CFX_WideStringC& wsKey) { 3632 void* XFA_GetMapKey_Custom(const CFX_WideStringC& wsKey) {
3663 uint32_t dwKey = FX_HashCode_GetW(wsKey, false); 3633 uint32_t dwKey = FX_HashCode_GetW(wsKey, false);
(...skipping 1534 matching lines...) Expand 10 before | Expand all | Expand 10 after
5198 } 5168 }
5199 } else { 5169 } else {
5200 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"remove"); 5170 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"remove");
5201 } 5171 }
5202 } 5172 }
5203 void CXFA_NodeList::Script_ListClass_Item(CFXJSE_Arguments* pArguments) { 5173 void CXFA_NodeList::Script_ListClass_Item(CFXJSE_Arguments* pArguments) {
5204 int32_t argc = pArguments->GetLength(); 5174 int32_t argc = pArguments->GetLength();
5205 if (argc == 1) { 5175 if (argc == 1) {
5206 int32_t iIndex = pArguments->GetInt32(0); 5176 int32_t iIndex = pArguments->GetInt32(0);
5207 if ((iIndex >= 0) && (iIndex + 1 <= GetLength())) { 5177 if ((iIndex >= 0) && (iIndex + 1 <= GetLength())) {
5208 FXJSE_Value_Set( 5178 pArguments->GetReturnValue()->Assign(
5209 pArguments->GetReturnValue(),
5210 m_pDocument->GetScriptContext()->GetJSValueFromMap(Item(iIndex))); 5179 m_pDocument->GetScriptContext()->GetJSValueFromMap(Item(iIndex)));
5211 } else { 5180 } else {
5212 ThrowException(XFA_IDS_INDEX_OUT_OF_BOUNDS); 5181 ThrowException(XFA_IDS_INDEX_OUT_OF_BOUNDS);
5213 } 5182 }
5214 } else { 5183 } else {
5215 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"item"); 5184 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"item");
5216 } 5185 }
5217 } 5186 }
5218 void CXFA_NodeList::Script_TreelistClass_NamedItem( 5187 void CXFA_NodeList::Script_TreelistClass_NamedItem(
5219 CFXJSE_Arguments* pArguments) { 5188 CFXJSE_Arguments* pArguments) {
5220 int32_t argc = pArguments->GetLength(); 5189 int32_t argc = pArguments->GetLength();
5221 if (argc == 1) { 5190 if (argc == 1) {
5222 CFX_ByteString szName = pArguments->GetUTF8String(0); 5191 CFX_ByteString szName = pArguments->GetUTF8String(0);
5223 CXFA_Node* pNode = 5192 CXFA_Node* pNode =
5224 NamedItem(CFX_WideString::FromUTF8(szName.AsStringC()).AsStringC()); 5193 NamedItem(CFX_WideString::FromUTF8(szName.AsStringC()).AsStringC());
5225 if (!pNode) { 5194 if (!pNode) {
5226 return; 5195 return;
5227 } 5196 }
5228 FXJSE_Value_Set(pArguments->GetReturnValue(), 5197 pArguments->GetReturnValue()->Assign(
5229 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNode)); 5198 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNode));
5230 } else { 5199 } else {
5231 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"namedItem"); 5200 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"namedItem");
5232 } 5201 }
5233 } 5202 }
5234 void CXFA_NodeList::Script_ListClass_Length(CFXJSE_Value* pValue, 5203 void CXFA_NodeList::Script_ListClass_Length(CFXJSE_Value* pValue,
5235 FX_BOOL bSetting, 5204 FX_BOOL bSetting,
5236 XFA_ATTRIBUTE eAttribute) { 5205 XFA_ATTRIBUTE eAttribute) {
5237 if (!bSetting) { 5206 if (!bSetting) {
5238 FXJSE_Value_SetInteger(pValue, GetLength()); 5207 pValue->SetInteger(GetLength());
5239 } else { 5208 } else {
5240 ThrowException(XFA_IDS_INVAlID_PROP_SET); 5209 ThrowException(XFA_IDS_INVAlID_PROP_SET);
5241 } 5210 }
5242 } 5211 }
5243 CXFA_ArrayNodeList::CXFA_ArrayNodeList(CXFA_Document* pDocument) 5212 CXFA_ArrayNodeList::CXFA_ArrayNodeList(CXFA_Document* pDocument)
5244 : CXFA_NodeList(pDocument) {} 5213 : CXFA_NodeList(pDocument) {}
5245 void CXFA_ArrayNodeList::SetArrayNodeList(const CXFA_NodeArray& srcArray) { 5214 void CXFA_ArrayNodeList::SetArrayNodeList(const CXFA_NodeArray& srcArray) {
5246 if (srcArray.GetSize() > 0) { 5215 if (srcArray.GetSize() > 0) {
5247 m_array.Copy(srcArray); 5216 m_array.Copy(srcArray);
5248 } 5217 }
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
5311 return m_pAttachNode->InsertChild(pNewNode, pBeforeNode); 5280 return m_pAttachNode->InsertChild(pNewNode, pBeforeNode);
5312 } 5281 }
5313 FX_BOOL CXFA_AttachNodeList::Remove(CXFA_Node* pNode) { 5282 FX_BOOL CXFA_AttachNodeList::Remove(CXFA_Node* pNode) {
5314 return m_pAttachNode->RemoveChild(pNode); 5283 return m_pAttachNode->RemoveChild(pNode);
5315 } 5284 }
5316 CXFA_Node* CXFA_AttachNodeList::Item(int32_t iIndex) { 5285 CXFA_Node* CXFA_AttachNodeList::Item(int32_t iIndex) {
5317 return m_pAttachNode->GetChild( 5286 return m_pAttachNode->GetChild(
5318 iIndex, XFA_ELEMENT_UNKNOWN, 5287 iIndex, XFA_ELEMENT_UNKNOWN,
5319 m_pAttachNode->GetClassID() == XFA_ELEMENT_Subform); 5288 m_pAttachNode->GetClassID() == XFA_ELEMENT_Subform);
5320 } 5289 }
OLDNEW
« no previous file with comments | « xfa/fxfa/fm2js/xfa_fm2jscontext.cpp ('k') | xfa/fxfa/parser/xfa_script_eventpseudomodel.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698