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

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

Powered by Google App Engine
This is Rietveld 408576698