summaryrefslogtreecommitdiff
path: root/fxjs/xfa/cjx_object.cpp
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2017-12-12 20:14:29 +0000
committerChromium commit bot <commit-bot@chromium.org>2017-12-12 20:14:29 +0000
commit92ee1ccdfbe28b6f7c3b92b35c8ffa0b90bff54b (patch)
tree94df5e9725b26681939801026caaa1f05be39dfa /fxjs/xfa/cjx_object.cpp
parent2e8cc01dd9e416c17a90a8d484d882d1c257c081 (diff)
downloadpdfium-92ee1ccdfbe28b6f7c3b92b35c8ffa0b90bff54b.tar.xz
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 <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'fxjs/xfa/cjx_object.cpp')
-rw-r--r--fxjs/xfa/cjx_object.cpp72
1 files changed, 72 insertions, 0 deletions
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);
+}