ScriptRunAtDispatcher.java 2.56 KB
/*
 * Decompiled with CFR 0_118.
 */
package com.adobe.xfa.form;

import com.adobe.xfa.AppModel;
import com.adobe.xfa.Arg;
import com.adobe.xfa.Element;
import com.adobe.xfa.EventManager;
import com.adobe.xfa.Model;
import com.adobe.xfa.Node;
import com.adobe.xfa.ScriptDispatcher;
import com.adobe.xfa.ScriptHandler;
import com.adobe.xfa.form.FormExclGroup;
import com.adobe.xfa.form.FormField;
import com.adobe.xfa.form.FormModel;
import com.adobe.xfa.form.FormSubform;
import com.adobe.xfa.template.TemplateModel;
import com.adobe.xfa.template.containers.Container;

class ScriptRunAtDispatcher
extends ScriptDispatcher {
    private final int meRunAt;

    ScriptRunAtDispatcher(Element scriptContextNode, String sEventContext, int nEventID, EventManager eventManager, String sScript, String sContentType, int eRunAt, String sTarget) {
        super(scriptContextNode, sEventContext, nEventID, eventManager, sScript, sContentType);
        this.meRunAt = eRunAt;
    }

    @Override
    public void dispatch() {
        int ePresence;
        Container container;
        TemplateModel templateModel;
        Element node = this.getActionContextNode();
        if (node == null) {
            return;
        }
        String sContentType = this.getContentType();
        int eRunAt = this.getRunAt();
        int nEventID = this.getEventID();
        assert (node instanceof FormField || node instanceof FormSubform || node instanceof FormExclGroup);
        FormModel formModel = (FormModel)node.getModel();
        if (formModel == null) {
            return;
        }
        AppModel appModel = node.getAppModel();
        if (appModel != null && (templateModel = TemplateModel.getTemplateModel(appModel, false)) != null && templateModel.getOriginalXFAVersion() >= 30 && node instanceof Container && 1076494339 == (ePresence = (container = (Container)node).getRuntimePresence(0))) {
            return;
        }
        String sActivity = this.getEventManager().getEventIDByIndex((int)nEventID).msEventName;
        int eModelRunAtSetting = formModel.getRunScripts();
        if (eModelRunAtSetting == 1080754179) {
            return;
        }
        if (eModelRunAtSetting == 1080754177 && eRunAt == 1079836672) {
            return;
        }
        if (eModelRunAtSetting == 1080754176 && eRunAt == 1079836673) {
            formModel.serverExchange(node, sActivity);
            return;
        }
        String sScript = this.getScript();
        node.evaluate(sScript, sContentType, ScriptHandler.stringToExecuteReason(sActivity), true);
    }

    int getRunAt() {
        return this.meRunAt;
    }
}