summaryrefslogtreecommitdiff
path: root/xfa/fxfa
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/fxfa')
-rw-r--r--xfa/fxfa/cxfa_ffdocview.cpp9
-rw-r--r--xfa/fxfa/cxfa_ffdocview.h8
-rw-r--r--xfa/fxfa/cxfa_ffnotify.cpp3
-rw-r--r--xfa/fxfa/parser/cxfa_binditems.cpp12
-rw-r--r--xfa/fxfa/parser/cxfa_binditems.h4
-rw-r--r--xfa/fxfa/parser/cxfa_binditemsdata.cpp24
-rw-r--r--xfa/fxfa/parser/cxfa_binditemsdata.h24
7 files changed, 27 insertions, 57 deletions
diff --git a/xfa/fxfa/cxfa_ffdocview.cpp b/xfa/fxfa/cxfa_ffdocview.cpp
index bd2b70920d..1160d55999 100644
--- a/xfa/fxfa/cxfa_ffdocview.cpp
+++ b/xfa/fxfa/cxfa_ffdocview.cpp
@@ -30,7 +30,7 @@
#include "xfa/fxfa/cxfa_textprovider.h"
#include "xfa/fxfa/cxfa_widgetacciterator.h"
#include "xfa/fxfa/parser/cxfa_acrobat.h"
-#include "xfa/fxfa/parser/cxfa_binditemsdata.h"
+#include "xfa/fxfa/parser/cxfa_binditems.h"
#include "xfa/fxfa/parser/cxfa_calculate.h"
#include "xfa/fxfa/parser/cxfa_layoutprocessor.h"
#include "xfa/fxfa/parser/cxfa_pageset.h"
@@ -717,10 +717,9 @@ void CXFA_FFDocView::RunBindItems() {
if (!pAcc)
continue;
- CXFA_BindItemsData bindItemsData(item);
CFXJSE_Engine* pScriptContext =
pWidgetNode->GetDocument()->GetScriptContext();
- WideString wsRef = bindItemsData.GetRef();
+ WideString wsRef = item->GetRef();
uint32_t dwStyle = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Properties |
XFA_RESOLVENODE_Siblings | XFA_RESOLVENODE_Parent |
XFA_RESOLVENODE_ALL;
@@ -731,8 +730,8 @@ void CXFA_FFDocView::RunBindItems() {
if (rs.dwFlags != XFA_ResolveNode_RSType_Nodes || rs.objects.empty())
continue;
- WideString wsValueRef = bindItemsData.GetValueRef();
- WideString wsLabelRef = bindItemsData.GetLabelRef();
+ WideString wsValueRef = item->GetValueRef();
+ WideString wsLabelRef = item->GetLabelRef();
const bool bUseValue = wsLabelRef.IsEmpty() || wsLabelRef == wsValueRef;
const bool bLabelUseContent = wsLabelRef.IsEmpty() || wsLabelRef == L"$";
const bool bValueUseContent = wsValueRef.IsEmpty() || wsValueRef == L"$";
diff --git a/xfa/fxfa/cxfa_ffdocview.h b/xfa/fxfa/cxfa_ffdocview.h
index e5b27b58ea..be03c10043 100644
--- a/xfa/fxfa/cxfa_ffdocview.h
+++ b/xfa/fxfa/cxfa_ffdocview.h
@@ -15,6 +15,7 @@
#include "xfa/fxfa/cxfa_eventparam.h"
#include "xfa/fxfa/cxfa_ffdoc.h"
+class CXFA_BindItems;
class CXFA_FFWidgetHandler;
class CXFA_FFDoc;
class CXFA_FFWidget;
@@ -102,14 +103,15 @@ class CXFA_FFDocView {
bool bIsFormReady,
bool bRecursive,
CXFA_Node* pExclude);
+
+ void AddBindItem(CXFA_BindItems* item) { m_BindItems.push_back(item); }
+
bool m_bLayoutEvent;
std::vector<WideString> m_arrNullTestMsg;
CXFA_FFWidget* m_pListFocusWidget;
bool m_bInLayoutStatus;
private:
- friend class CXFA_FFNotify;
-
bool RunEventLayoutReady();
void RunBindItems();
void InitCalculate(CXFA_Node* pNode);
@@ -128,7 +130,7 @@ class CXFA_FFDocView {
std::map<CXFA_FFPageView*, std::unique_ptr<CFX_RectF>> m_mapPageInvalidate;
std::vector<CXFA_WidgetAcc*> m_ValidateAccs;
std::vector<CXFA_WidgetAcc*> m_CalculateAccs;
- std::vector<CXFA_Node*> m_BindItems;
+ std::vector<CXFA_BindItems*> m_BindItems;
std::vector<CXFA_Node*> m_NewAddedNodes;
std::vector<CXFA_Node*> m_IndexChangedSubforms;
XFA_DOCVIEW_LAYOUTSTATUS m_iStatus;
diff --git a/xfa/fxfa/cxfa_ffnotify.cpp b/xfa/fxfa/cxfa_ffnotify.cpp
index 9da75bde23..5b47d99387 100644
--- a/xfa/fxfa/cxfa_ffnotify.cpp
+++ b/xfa/fxfa/cxfa_ffnotify.cpp
@@ -37,6 +37,7 @@
#include "xfa/fxfa/cxfa_fwladapterwidgetmgr.h"
#include "xfa/fxfa/cxfa_textlayout.h"
#include "xfa/fxfa/cxfa_textprovider.h"
+#include "xfa/fxfa/parser/cxfa_binditems.h"
#include "xfa/fxfa/parser/cxfa_node.h"
namespace {
@@ -346,7 +347,7 @@ void CXFA_FFNotify::OnNodeReady(CXFA_Node* pNode) {
}
switch (eType) {
case XFA_Element::BindItems:
- pDocView->m_BindItems.push_back(pNode);
+ pDocView->AddBindItem(static_cast<CXFA_BindItems*>(pNode));
break;
case XFA_Element::Validate:
pNode->SetFlag(XFA_NodeFlag_NeedsInitApp, false);
diff --git a/xfa/fxfa/parser/cxfa_binditems.cpp b/xfa/fxfa/parser/cxfa_binditems.cpp
index 1c33e4c1c5..d7d72a7e3a 100644
--- a/xfa/fxfa/parser/cxfa_binditems.cpp
+++ b/xfa/fxfa/parser/cxfa_binditems.cpp
@@ -34,3 +34,15 @@ CXFA_BindItems::CXFA_BindItems(CXFA_Document* doc, XFA_PacketType packet)
pdfium::MakeUnique<CJX_BindItems>(this)) {}
CXFA_BindItems::~CXFA_BindItems() {}
+
+WideString CXFA_BindItems::GetLabelRef() {
+ return JSObject()->GetCData(XFA_Attribute::LabelRef);
+}
+
+WideString CXFA_BindItems::GetValueRef() {
+ return JSObject()->GetCData(XFA_Attribute::ValueRef);
+}
+
+WideString CXFA_BindItems::GetRef() {
+ return JSObject()->GetCData(XFA_Attribute::Ref);
+}
diff --git a/xfa/fxfa/parser/cxfa_binditems.h b/xfa/fxfa/parser/cxfa_binditems.h
index f2263429b1..f1a490d13e 100644
--- a/xfa/fxfa/parser/cxfa_binditems.h
+++ b/xfa/fxfa/parser/cxfa_binditems.h
@@ -13,6 +13,10 @@ class CXFA_BindItems : public CXFA_Node {
public:
CXFA_BindItems(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_BindItems() override;
+
+ WideString GetLabelRef();
+ WideString GetValueRef();
+ WideString GetRef();
};
#endif // XFA_FXFA_PARSER_CXFA_BINDITEMS_H_
diff --git a/xfa/fxfa/parser/cxfa_binditemsdata.cpp b/xfa/fxfa/parser/cxfa_binditemsdata.cpp
deleted file mode 100644
index 0477d3e5d5..0000000000
--- a/xfa/fxfa/parser/cxfa_binditemsdata.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#include "xfa/fxfa/parser/cxfa_binditemsdata.h"
-
-#include "xfa/fxfa/parser/cxfa_node.h"
-
-CXFA_BindItemsData::CXFA_BindItemsData(CXFA_Node* pNode)
- : CXFA_DataData(pNode) {}
-
-WideString CXFA_BindItemsData::GetLabelRef() const {
- return m_pNode->JSObject()->GetCData(XFA_Attribute::LabelRef);
-}
-
-WideString CXFA_BindItemsData::GetValueRef() const {
- return m_pNode->JSObject()->GetCData(XFA_Attribute::ValueRef);
-}
-
-WideString CXFA_BindItemsData::GetRef() const {
- return m_pNode->JSObject()->GetCData(XFA_Attribute::Ref);
-}
diff --git a/xfa/fxfa/parser/cxfa_binditemsdata.h b/xfa/fxfa/parser/cxfa_binditemsdata.h
deleted file mode 100644
index ab4cac1836..0000000000
--- a/xfa/fxfa/parser/cxfa_binditemsdata.h
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef XFA_FXFA_PARSER_CXFA_BINDITEMSDATA_H_
-#define XFA_FXFA_PARSER_CXFA_BINDITEMSDATA_H_
-
-#include "core/fxcrt/fx_string.h"
-#include "xfa/fxfa/parser/cxfa_datadata.h"
-
-class CXFA_Node;
-
-class CXFA_BindItemsData : public CXFA_DataData {
- public:
- explicit CXFA_BindItemsData(CXFA_Node* pNode);
-
- WideString GetLabelRef() const;
- WideString GetValueRef() const;
- WideString GetRef() const;
-};
-
-#endif // XFA_FXFA_PARSER_CXFA_BINDITEMSDATA_H_