From 92ee1ccdfbe28b6f7c3b92b35c8ffa0b90bff54b Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Tue, 12 Dec 2017 20:14:29 +0000 Subject: Move Script_Som_*Message methods to CJX_Object The CJX_Node isn't the root of the CJX hierarchy. This causes issues now that CJX_Object has child objects which don't inherit from CJX_Node. This CL moves Script_Som_*Message from CJX_Node to CJX_Object. Change-Id: I04b7e03aa78d14d7d5dba1926a808cef852d5218 Reviewed-on: https://pdfium-review.googlesource.com/20992 Reviewed-by: Henrique Nakashima Commit-Queue: dsinclair --- fxjs/xfa/cjx_object.cpp | 72 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) (limited to 'fxjs/xfa/cjx_object.cpp') diff --git a/fxjs/xfa/cjx_object.cpp b/fxjs/xfa/cjx_object.cpp index 1d94b55d98..1f4f77aea1 100644 --- a/fxjs/xfa/cjx_object.cpp +++ b/fxjs/xfa/cjx_object.cpp @@ -1035,3 +1035,75 @@ void CJX_Object::Script_Som_BorderWidth(CFXJSE_Value* pValue, CXFA_Measurement(wsThickness.AsStringView())); } } + +void CJX_Object::Script_Som_Message(CFXJSE_Value* pValue, + bool bSetting, + XFA_SOM_MESSAGETYPE iMessageType) { + if (!widget_data_) + return; + + bool bNew = false; + CXFA_ValidateData validateData = widget_data_->GetValidateData(false); + if (!validateData.HasValidNode()) { + validateData = widget_data_->GetValidateData(true); + bNew = true; + } + + if (bSetting) { + switch (iMessageType) { + case XFA_SOM_ValidationMessage: + validateData.SetScriptMessageText(pValue->ToWideString()); + break; + case XFA_SOM_FormatMessage: + validateData.SetFormatMessageText(pValue->ToWideString()); + break; + case XFA_SOM_MandatoryMessage: + validateData.SetNullMessageText(pValue->ToWideString()); + break; + default: + break; + } + if (!bNew) { + CXFA_FFNotify* pNotify = GetDocument()->GetNotify(); + if (!pNotify) { + return; + } + pNotify->AddCalcValidate(ToNode(GetXFAObject())); + } + return; + } + + WideString wsMessage; + switch (iMessageType) { + case XFA_SOM_ValidationMessage: + wsMessage = validateData.GetScriptMessageText(); + break; + case XFA_SOM_FormatMessage: + wsMessage = validateData.GetFormatMessageText(); + break; + case XFA_SOM_MandatoryMessage: + wsMessage = validateData.GetNullMessageText(); + break; + default: + break; + } + pValue->SetString(wsMessage.UTF8Encode().AsStringView()); +} + +void CJX_Object::Script_Som_ValidationMessage(CFXJSE_Value* pValue, + bool bSetting, + XFA_Attribute eAttribute) { + Script_Som_Message(pValue, bSetting, XFA_SOM_ValidationMessage); +} + +void CJX_Object::Script_Field_FormatMessage(CFXJSE_Value* pValue, + bool bSetting, + XFA_Attribute eAttribute) { + Script_Som_Message(pValue, bSetting, XFA_SOM_FormatMessage); +} + +void CJX_Object::Script_Som_MandatoryMessage(CFXJSE_Value* pValue, + bool bSetting, + XFA_Attribute eAttribute) { + Script_Som_Message(pValue, bSetting, XFA_SOM_MandatoryMessage); +} -- cgit v1.2.3