FormDependencyTracker.java
2.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*
* Decompiled with CFR 0_118.
*/
package com.adobe.xfa.form;
import com.adobe.xfa.AppModel;
import com.adobe.xfa.DependencyTracker;
import com.adobe.xfa.Element;
import com.adobe.xfa.Model;
import com.adobe.xfa.Node;
import com.adobe.xfa.Obj;
import com.adobe.xfa.XFA;
import com.adobe.xfa.form.FormExclGroup;
import com.adobe.xfa.form.FormField;
import com.adobe.xfa.form.FormModel;
import com.adobe.xfa.form.FormSubform;
public class FormDependencyTracker
extends DependencyTracker {
private final AppModel mAppModel;
private final FormModel mFormModel;
private final Element mNode;
private final boolean mbIsCalculate;
public FormDependencyTracker(Element node, boolean bIsCalculate) {
assert (node instanceof FormField || node instanceof FormSubform || node instanceof FormExclGroup);
this.mNode = node;
this.mbIsCalculate = bIsCalculate;
this.mFormModel = (FormModel)this.mNode.getModel();
this.mAppModel = this.mFormModel.getAppModel();
this.mAppModel.dependencyTracker(this);
}
void dispose() {
this.mAppModel.dependencyTracker(null);
}
@Override
public void addDependency(Obj dependsOn) {
if (this.mNode == dependsOn && this.mbIsCalculate) {
return;
}
this.mFormModel.addScriptDependency(this.mNode, dependsOn, this.mbIsCalculate);
}
@Override
public void addVirtualDependency(Obj context, String sPropertyName) {
if (context.isSameClass("subformSet") || context.isSameClass("subform")) {
Element node = (Element)context;
if (node.getModel() != this.mFormModel) {
return;
}
String sNodeName = "_" + sPropertyName;
String aNodeName = sNodeName.intern();
for (Node child = node.getFirstXFAChild(); child != null; child = child.getNextXFASibling()) {
if (!child.isSameClass(XFA.INSTANCEMANAGERTAG) || child.getName() != "_" && child.getName() != aNodeName) continue;
this.addDependency(child);
}
}
}
}