ExclGroup.java 8.63 KB
/*
 * Decompiled with CFR 0_118.
 */
package com.adobe.xfa.template.containers;

import com.adobe.xfa.Arg;
import com.adobe.xfa.ArrayNodeList;
import com.adobe.xfa.Attribute;
import com.adobe.xfa.Element;
import com.adobe.xfa.Node;
import com.adobe.xfa.NodeList;
import com.adobe.xfa.Obj;
import com.adobe.xfa.ScriptTable;
import com.adobe.xfa.StringAttr;
import com.adobe.xfa.XFA;
import com.adobe.xfa.data.DataNode;
import com.adobe.xfa.template.TemplateModel;
import com.adobe.xfa.template.containers.Container;
import com.adobe.xfa.template.containers.ExclGroupScript;
import com.adobe.xfa.template.containers.Field;
import org.xml.sax.Attributes;

public class ExclGroup
extends Container {
    public ExclGroup(Element parent, Node prevSibling) {
        super(parent, prevSibling, null, "exclGroup", "exclGroup", null, XFA.EXCLGROUPTAG, "exclGroup");
    }

    public void execEvent(String sActivity) {
    }

    public boolean execValidate() {
        return true;
    }

    public String getAccessKey() {
        Attribute oAttr;
        if (this.isValidAttr(XFA.ACCESSKEYTAG, false, null) && this.isPropertySpecified(XFA.ACCESSKEYTAG, true, 0) && (oAttr = this.getAttribute(XFA.ACCESSKEYTAG, true, false)) != null && !oAttr.isEmpty()) {
            String sAccessKey = oAttr.toString();
            return sAccessKey;
        }
        return "";
    }

    public String getBackColor() {
        Element pFillNode;
        Element pColorNode;
        String sRet = "";
        Element pBorderNode = this.getElement(XFA.BORDERTAG, true, 0, true, false);
        if (pBorderNode != null && (pFillNode = pBorderNode.getElement(XFA.FILLTAG, true, 0, true, false)) != null && (pColorNode = pFillNode.getElement(XFA.COLORTAG, true, 0, true, false)) != null) {
            sRet = pColorNode.getAttribute(XFA.VALUETAG).toString();
        }
        return sRet;
    }

    public String getBorderColor() {
        Element pEdgeNode;
        Element pColorNode;
        String sRet = "";
        Element pBorderNode = this.getElement(XFA.BORDERTAG, true, 0, true, false);
        if (pBorderNode != null && (pEdgeNode = pBorderNode.getElement(XFA.EDGETAG, true, 0, true, false)) != null && (pColorNode = pEdgeNode.getElement(XFA.COLORTAG, true, 0, true, false)) != null) {
            sRet = pColorNode.getAttribute(XFA.VALUETAG).toString();
        }
        return sRet;
    }

    public String getBorderWidth() {
        Element pEdgeNode;
        String sRet = "";
        Element pBorderNode = this.getElement(XFA.BORDERTAG, true, 0, true, false);
        if (pBorderNode != null && (pEdgeNode = pBorderNode.getElement(XFA.EDGETAG, true, 0, true, false)) != null) {
            sRet = pEdgeNode.getAttribute(XFA.THICKNESSTAG).toString();
        }
        return sRet;
    }

    public DataNode getDataNode() {
        return null;
    }

    public String getFormattedValue() {
        Node pMember = this.getSelectedMember();
        if (pMember instanceof Field) {
            return ((Field)pMember).getFormattedValue();
        }
        return "";
    }

    public String getMandatory() {
        String sRet = "";
        Element pValidateNode = this.getElement(XFA.VALIDATETAG, true, 0, true, false);
        if (pValidateNode != null) {
            sRet = pValidateNode.getAttribute(XFA.NULLTESTTAG).toString();
        }
        return sRet;
    }

    public NodeList getMembers() {
        ArrayNodeList oList = new ArrayNodeList();
        for (Node child = this.getFirstXFAChild(); child != null; child = child.getNextXFASibling()) {
            if (!(child instanceof Field)) continue;
            oList.append(child);
        }
        return oList;
    }

    public String getMessage(String aType) {
        String sRet = "";
        Element pValidateNode = this.getElement(XFA.VALIDATETAG, true, 0, false, false);
        if (pValidateNode != null) {
            sRet = TemplateModel.getValidationMessage(pValidateNode, aType);
        }
        return sRet;
    }

    public String getRawValue() {
        Node pMember = this.getSelectedMember();
        if (pMember instanceof Field) {
            return ((Field)pMember).getRawValue();
        }
        return "";
    }

    public void getTypedRawValue(Arg oValue) {
        Node member = this.getSelectedMember();
        if (member != null && member instanceof Field) {
            ((Field)member).getTypedRawValue(oValue);
        } else {
            oValue.setNull();
        }
    }

    public Node getSelectedMember() {
        NodeList oMembers = this.getMembers();
        int nLen = oMembers.length();
        for (int i = 0; i < nLen; ++i) {
            Field oMember = (Field)oMembers.item(i);
            if (!oMember.isOn()) continue;
            return oMember;
        }
        return null;
    }

    @Override
    public ScriptTable getScriptTable() {
        return ExclGroupScript.getScriptTable();
    }

    @Override
    public boolean isConnectSupported() {
        return true;
    }

    @Override
    public boolean isHeightGrowSupported() {
        return true;
    }

    @Override
    public boolean isWidthGrowSupported() {
        return true;
    }

    public void setBackColor(String sString) {
        Element pBorderNode = this.getElement(XFA.BORDERTAG, 0);
        Element pFillNode = pBorderNode.getElement(XFA.FILLTAG, 0);
        Element pColorNode = pFillNode.getElement(XFA.COLORTAG, 0);
        pColorNode.setAttribute(new StringAttr("value", sString), XFA.VALUETAG);
    }

    public void setBorderColor(String sString) {
        Element pColorNode;
        int i;
        Element pBorderNode = this.getElement(XFA.BORDERTAG, 0);
        for (i = 0; i < 4 && pBorderNode.isPropertySpecified(XFA.EDGETAG, true, i); ++i) {
            Element pEdgeNode = pBorderNode.getElement(XFA.EDGETAG, false, i, false, false);
            pColorNode = pEdgeNode.getElement(XFA.COLORTAG, 0);
            pColorNode.setAttribute(new StringAttr("value", sString), XFA.VALUETAG);
        }
        for (i = 0; i < 4 && pBorderNode.isPropertySpecified(XFA.CORNERTAG, true, i); ++i) {
            Element pCornerNode = pBorderNode.getElement(XFA.CORNERTAG, false, i, false, false);
            pColorNode = pCornerNode.getElement(XFA.COLORTAG, 0);
            pColorNode.setAttribute(new StringAttr("value", sString), XFA.VALUETAG);
        }
    }

    public void setBorderWidth(String sString) {
        int i;
        Element pBorderNode = this.getElement(XFA.BORDERTAG, 0);
        for (i = 0; i < 4 && pBorderNode.isPropertySpecified(XFA.EDGETAG, true, i); ++i) {
            Element pEdgeNode = pBorderNode.getElement(XFA.EDGETAG, false, i, false, false);
            pEdgeNode.setAttribute(new StringAttr("thickness", sString), XFA.THICKNESSTAG);
        }
        for (i = 0; i < 4 && pBorderNode.isPropertySpecified(XFA.CORNERTAG, true, i); ++i) {
            Element pCornerNode = pBorderNode.getElement(XFA.CORNERTAG, false, i, false, false);
            pCornerNode.setAttribute(new StringAttr("thickness", sString), XFA.THICKNESSTAG);
        }
    }

    public void setMandatory(String sString) {
        Element pValidateNode = this.getElement(XFA.VALIDATETAG, 0);
        pValidateNode.setAttribute(new StringAttr("nullTest", sString), XFA.NULLTESTTAG);
    }

    public void setMessage(String sMessage, String aType) {
        Element pValidateNode = this.getElement(XFA.VALIDATETAG, 0);
        TemplateModel.setValidationMessage(pValidateNode, sMessage, aType);
    }

    public void setRawValue(String sValue) {
        int i;
        String sOn;
        Field oField;
        boolean bTurnedOn = false;
        NodeList oMembers = this.getMembers();
        int nChildren = oMembers.length();
        for (i = 0; i < nChildren; ++i) {
            oField = (Field)oMembers.item(i);
            boolean bSetOn = false;
            sOn = oField.getOnValue();
            if (sOn != null && sOn.equals(sValue)) {
                bTurnedOn = true;
                bSetOn = true;
            }
            oField.setOn(bSetOn);
        }
        if (!bTurnedOn) {
            for (i = 0; i < nChildren; ++i) {
                oField = (Field)oMembers.item(i);
                sOn = oField.getOnValue();
                if (sOn != null) continue;
                oField.setRawValue(sValue);
                break;
            }
        }
        this.notifyPeers(2, "", this);
    }

    public void setSelectedMember(String sSOMName) {
        Node oOnNode = this.resolveNode(sSOMName);
        NodeList oMembers = this.getMembers();
        int nLen = oMembers.length();
        for (int i = 0; i < nLen; ++i) {
            Field oMember = (Field)oMembers.item(i);
            boolean bOn = oOnNode == oMember;
            oMember.setOn(bOn);
        }
        this.notifyPeers(2, "", this);
    }
}