OLD | NEW |
---|---|
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include "xfa/fxfa/parser/xfa_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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 } |
OLD | NEW |