void CXFA_FFDocView::ShowNullTestMsg() { int32_t iCount = m_arrNullTestMsg.GetSize(); CXFA_FFApp* pApp = m_pDoc->GetApp(); IXFA_AppProvider* pAppProvider = pApp->GetAppProvider(); if (pAppProvider && iCount) { int32_t iRemain = iCount > 7 ? iCount - 7 : 0; iCount -= iRemain; CFX_WideString wsMsg; for (int32_t i = 0; i < iCount; i++) { wsMsg += m_arrNullTestMsg[i] + FX_WSTRC(L"\n"); } if (iRemain > 0) { CFX_WideString wsLimit; pAppProvider->LoadString(XFA_IDS_ValidateLimit, wsLimit); if (!wsLimit.IsEmpty()) { CFX_WideString wsTemp; wsTemp.Format((const FX_WCHAR*)wsLimit, iRemain); wsMsg += FX_WSTRC(L"\n") + wsTemp; } } CFX_WideString wsTitle; pAppProvider->LoadString(XFA_IDS_AppName, wsTitle); pAppProvider->MsgBox(wsMsg, wsTitle, XFA_MBICON_Status, XFA_MB_OK); } m_arrNullTestMsg.RemoveAll(); }
void CXFA_FFTextEdit::ValidateNumberField(const WideString& wsText) { if (GetNode()->GetFFWidgetType() != XFA_FFWidgetType::kNumericEdit) return; IXFA_AppProvider* pAppProvider = GetApp()->GetAppProvider(); if (!pAppProvider) return; WideString wsSomField = GetNode()->GetSOMExpression(); pAppProvider->MsgBox( wsText + WideString::FromASCII(" can not contain ") + wsSomField, pAppProvider->GetAppTitle(), static_cast<uint32_t>(AlertIcon::kError), static_cast<uint32_t>(AlertButton::kOK)); }
void CXFA_FFTextEdit::ValidateNumberField(const CFX_WideString& wsText) { CXFA_WidgetAcc* pAcc = GetDataAcc(); if (pAcc && pAcc->GetUIType() == XFA_Element::NumericEdit) { IXFA_AppProvider* pAppProvider = GetApp()->GetAppProvider(); if (pAppProvider) { CFX_WideString wsTitle; pAppProvider->LoadString(XFA_IDS_AppName, wsTitle); CFX_WideString wsError; pAppProvider->LoadString(XFA_IDS_ValidateNumberError, wsError); CFX_WideString wsSomField; pAcc->GetNode()->GetSOMExpression(wsSomField); CFX_WideString wsMessage; wsMessage.Format(wsError.c_str(), wsText.c_str(), wsSomField.c_str()); pAppProvider->MsgBox(wsMessage, wsTitle, XFA_MBICON_Error, XFA_MB_OK); } } }
int32_t CXFA_FFField::CalculateWidgetAcc(CXFA_WidgetAcc* pAcc) { CXFA_Calculate calc = pAcc->GetCalculate(); if (!calc) { return 1; } XFA_VERSION version = pAcc->GetDoc()->GetXFADoc()->GetCurVersionMode(); if (calc) { int32_t iOverride = calc.GetOverride(); switch (iOverride) { case XFA_ATTRIBUTEENUM_Error: { if (version <= XFA_VERSION_204) { return 1; } IXFA_AppProvider* pAppProvider = GetApp()->GetAppProvider(); if (pAppProvider) { CFX_WideString wsMessage; CFX_WideString wsWarning; pAppProvider->LoadString(XFA_IDS_NotModifyField, wsWarning); wsMessage += wsWarning; CFX_WideString wsTitle; pAppProvider->LoadString(XFA_IDS_CalcOverride, wsTitle); pAppProvider->MsgBox(wsMessage, wsTitle, XFA_MBICON_Warning, XFA_MB_OK); } } return 0; case XFA_ATTRIBUTEENUM_Warning: { if (version <= XFA_VERSION_204) { CXFA_Script script = calc.GetScript(); if (!script) { return 1; } CFX_WideString wsExpression; script.GetExpression(wsExpression); if (wsExpression.IsEmpty()) { return 1; } } if (pAcc->GetNode()->IsUserInteractive()) return 1; IXFA_AppProvider* pAppProvider = GetApp()->GetAppProvider(); if (pAppProvider) { CFX_WideString wsMessage; calc.GetMessageText(wsMessage); if (!wsMessage.IsEmpty()) { wsMessage += L"\r\n"; } CFX_WideString wsWarning; pAppProvider->LoadString(XFA_IDS_ModifyField, wsWarning); wsMessage += wsWarning; CFX_WideString wsTitle; pAppProvider->LoadString(XFA_IDS_CalcOverride, wsTitle); if (pAppProvider->MsgBox(wsMessage, wsTitle, XFA_MBICON_Warning, XFA_MB_YesNo) == XFA_IDYes) { pAcc->GetNode()->SetFlag(XFA_NodeFlag_UserInteractive, false); return 1; } } return 0; } case XFA_ATTRIBUTEENUM_Ignore: return 0; case XFA_ATTRIBUTEENUM_Disabled: pAcc->GetNode()->SetFlag(XFA_NodeFlag_UserInteractive, false); default: return 1; } } return 1; }