Search in sources :

Example 11 with Attribute

use of org.jdom2.Attribute in project JMRI by JMRI.

the class MergSD2SignalHeadXml method load.

@Override
public boolean load(Element shared, Element perNode) {
    int aspects = 2;
    List<Element> l = shared.getChildren("turnoutname");
    if (l.size() == 0) {
        l = shared.getChildren("turnout");
        aspects = l.size() + 1;
    }
    NamedBeanHandle<Turnout> input1 = null;
    NamedBeanHandle<Turnout> input2 = null;
    NamedBeanHandle<Turnout> input3 = null;
    String yesno = "";
    boolean feather = false;
    boolean home = true;
    // put it together
    String sys = getSystemName(shared);
    String uname = getUserName(shared);
    if (shared.getAttribute("feather") != null) {
        yesno = shared.getAttribute("feather").getValue();
    }
    if ((yesno != null) && (!yesno.equals(""))) {
        if (yesno.equals("yes")) {
            feather = true;
        } else if (yesno.equals("no")) {
            feather = false;
        }
    }
    if (shared.getAttribute("home") != null) {
        yesno = shared.getAttribute("home").getValue();
    }
    if ((yesno != null) && (!yesno.equals(""))) {
        if (yesno.equals("yes")) {
            home = true;
        } else if (yesno.equals("no")) {
            home = false;
        }
    }
    try {
        aspects = shared.getAttribute("aspects").getIntValue();
    } catch (org.jdom2.DataConversionException e) {
        log.warn("Could not parse level attribute!");
    } catch (NullPointerException e) {
    // considered normal if the attribute not present
    }
    SignalHead h;
    //@TODO could re-arange this so that it falls through
    switch(aspects) {
        case 2:
            input1 = loadTurnout(l.get(0));
            break;
        case 3:
            input1 = loadTurnout(l.get(0));
            input2 = loadTurnout(l.get(1));
            break;
        case 4:
            input1 = loadTurnout(l.get(0));
            input2 = loadTurnout(l.get(1));
            input3 = loadTurnout(l.get(2));
            break;
        default:
            log.error("incorrect number of aspects " + aspects + " when loading Signal " + sys);
    }
    if (uname == null) {
        h = new MergSD2SignalHead(sys, aspects, input1, input2, input3, feather, home);
    } else {
        h = new MergSD2SignalHead(sys, uname, aspects, input1, input2, input3, feather, home);
    }
    loadCommon(h, shared);
    InstanceManager.getDefault(jmri.SignalHeadManager.class).register(h);
    return true;
}
Also used : Element(org.jdom2.Element) MergSD2SignalHead(jmri.implementation.MergSD2SignalHead) SignalHead(jmri.SignalHead) MergSD2SignalHead(jmri.implementation.MergSD2SignalHead) Turnout(jmri.Turnout)

Example 12 with Attribute

use of org.jdom2.Attribute in project JMRI by JMRI.

the class DefaultCatalogTreeManagerXml method loadNode.

/**
     * Recursively load a CatalogTree.
     *
     * @param element element containing the node to load
     * @param parent  the parent node of the node in element
     * @param model   the tree model containing the tree to add the node to
     */
public void loadNode(Element element, CatalogTreeNode parent, DefaultTreeModel model) {
    List<Element> nodeList = element.getChildren("node");
    if (log.isDebugEnabled()) {
        log.debug("Found " + nodeList.size() + " CatalogTreeNode objects");
    }
    for (int i = 0; i < nodeList.size(); i++) {
        Element elem = nodeList.get(i);
        Attribute attr = elem.getAttribute("nodeName");
        if (attr == null) {
            log.warn("unexpected null nodeName. elem= " + elem + ", attrs= " + elem.getAttributes());
            continue;
        }
        String nodeName = attr.getValue();
        CatalogTreeNode n = new CatalogTreeNode(nodeName);
        addLeaves(elem, n);
        model.insertNodeInto(n, parent, parent.getChildCount());
        loadNode(elem, n, model);
    }
}
Also used : Attribute(org.jdom2.Attribute) Element(org.jdom2.Element) CatalogTreeNode(jmri.jmrit.catalog.CatalogTreeNode)

Example 13 with Attribute

use of org.jdom2.Attribute in project JMRI by JMRI.

the class SlipTurnoutIconXml method load.

/**
     * Create a PositionableLabel, then add to a target JLayeredPane
     *
     * @param element Top level Element to unpack.
     * @param o       Editor as an Object
     */
@SuppressWarnings("null")
@Override
public void load(Element element, Object o) {
    // create the objects
    Editor p = (Editor) o;
    SlipTurnoutIcon l = new SlipTurnoutIcon(p);
    int rotation = 0;
    try {
        Attribute a = element.getAttribute("rotate");
        rotation = a.getIntValue();
    } catch (org.jdom2.DataConversionException e) {
    } catch (NullPointerException e) {
    // considered normal if the attributes are not present
    }
    String nameEast = loadTurnout(element, "turnoutEast");
    /*try {
         nameEast=element.getAttribute("turnoutEast").getValue();
         } catch ( NullPointerException e) { 
         log.error("incorrect information for turnout; must use turnout name");
         return;
         }*/
    String nameWest = loadTurnout(element, "turnoutWest");
    /*try {
         nameWest=element.getAttribute("turnoutWest").getValue();
         } catch ( NullPointerException e) { 
         log.error("incorrect information for turnout; must use turnout name");
         return;
         }*/
    Attribute a = element.getAttribute("turnoutType");
    if (a != null) {
        if (a.getValue().equals("doubleSlip")) {
            l.setTurnoutType(SlipTurnoutIcon.DOUBLESLIP);
        } else if (a.getValue().equals("singleSlip")) {
            l.setTurnoutType(SlipTurnoutIcon.SINGLESLIP);
            a = element.getAttribute("singleSlipRoute");
            if ((a == null) || a.getValue().equals("upperWestToUpperEast")) {
                l.setSingleSlipRoute(true);
            } else {
                l.setSingleSlipRoute(false);
            }
        } else if (a.getValue().equals("threeWay")) {
            l.setTurnoutType(SlipTurnoutIcon.THREEWAY);
            a = element.getAttribute("firstTurnoutExit");
            if ((a == null) || a.getValue().equals("lower")) {
                l.setSingleSlipRoute(false);
            } else {
                l.setSingleSlipRoute(true);
            }
        } else if (a.getValue().equals("scissor")) {
            l.setTurnoutType(SlipTurnoutIcon.SCISSOR);
            if (loadTurnout(element, "turnoutLowerWest") == null) {
                l.setSingleSlipRoute(true);
            } else {
                //loadTurnout(element, "turnoutLowerEast");
                l.setSingleSlipRoute(false);
                l.setTurnout(loadTurnout(element, "turnoutLowerEast"), SlipTurnoutIcon.LOWEREAST);
                l.setTurnout(loadTurnout(element, "turnoutLowerWest"), SlipTurnoutIcon.LOWERWEST);
            }
        }
    }
    loadTurnoutIcon("lowerWestToUpperEast", rotation, l, element, p);
    loadTurnoutIcon("upperWestToLowerEast", rotation, l, element, p);
    switch(l.getTurnoutType()) {
        case SlipTurnoutIcon.DOUBLESLIP:
            loadTurnoutIcon("lowerWestToLowerEast", rotation, l, element, p);
            loadTurnoutIcon("upperWestToUpperEast", rotation, l, element, p);
            break;
        default:
            loadTurnoutIcon("lowerWestToLowerEast", rotation, l, element, p);
            break;
    }
    loadTurnoutIcon("unknown", rotation, l, element, p);
    loadTurnoutIcon("inconsistent", rotation, l, element, p);
    a = element.getAttribute("tristate");
    if ((a == null) || a.getValue().equals("true")) {
        l.setTristate(true);
    } else {
        l.setTristate(false);
    }
    l.setTurnout(nameEast, SlipTurnoutIcon.EAST);
    l.setTurnout(nameWest, SlipTurnoutIcon.WEST);
    p.putItem(l);
    // load individual item's option settings after editor has set its global settings
    loadCommonAttributes(l, Editor.TURNOUTS, element);
}
Also used : Attribute(org.jdom2.Attribute) SlipTurnoutIcon(jmri.jmrit.display.SlipTurnoutIcon) Editor(jmri.jmrit.display.Editor)

Example 14 with Attribute

use of org.jdom2.Attribute in project JMRI by JMRI.

the class TurnoutIconXml method load.

/**
     * Create a PositionableLabel, then add to a target JLayeredPane
     *
     * @param element Top level Element to unpack.
     * @param o       Editor as an Object
     */
@SuppressWarnings("null")
@Override
public void load(Element element, Object o) {
    // create the objects
    Editor p = (Editor) o;
    TurnoutIcon l = new TurnoutIcon(p);
    String name;
    try {
        name = element.getAttribute("turnout").getValue();
    } catch (NullPointerException e) {
        log.error("incorrect information for turnout; must use turnout name");
        p.loadFailed();
        return;
    }
    l.setTurnout(name);
    Attribute a = element.getAttribute("tristate");
    if ((a == null) || a.getValue().equals("true")) {
        l.setTristate(true);
    } else {
        l.setTristate(false);
    }
    a = element.getAttribute("momentary");
    if ((a != null) && a.getValue().equals("true")) {
        l.setMomentary(true);
    } else {
        l.setMomentary(false);
    }
    a = element.getAttribute("directControl");
    if ((a != null) && a.getValue().equals("true")) {
        l.setDirectControl(true);
    } else {
        l.setDirectControl(false);
    }
    List<Element> states = element.getChildren();
    if (states.size() > 0) {
        if (log.isDebugEnabled()) {
            log.debug("Main element has" + states.size() + " items");
        }
        // the element containing the icons
        Element elem = element;
        Element icons = element.getChild("icons");
        if (icons != null) {
            List<Element> s = icons.getChildren();
            states = s;
            // the element containing the icons
            elem = icons;
            if (log.isDebugEnabled()) {
                log.debug("icons element has" + states.size() + " items");
            }
        }
        for (int i = 0; i < states.size(); i++) {
            String state = states.get(i).getName();
            if (log.isDebugEnabled()) {
                log.debug("setIcon for state \"" + state + "\" and " + _nameMap.get(state));
            }
            NamedIcon icon = loadIcon(l, state, elem, "TurnoutIcon \"" + name + "\": icon \"" + state + "\" ", p);
            if (icon != null) {
                l.setIcon(_nameMap.get(state), icon);
            } else {
                log.info("TurnoutIcon \"" + name + "\": icon \"" + state + "\" removed");
                return;
            }
        }
        log.debug(states.size() + " icons loaded for " + l.getNameString());
    } else {
        // case when everything was attributes
        int rotation = 0;
        try {
            rotation = element.getAttribute("rotate").getIntValue();
        } catch (org.jdom2.DataConversionException e) {
        } catch (NullPointerException e) {
        // considered normal if the attributes are not present
        }
        if (loadTurnoutIcon("thrown", rotation, l, element, name, p) == null) {
            return;
        }
        if (loadTurnoutIcon("closed", rotation, l, element, name, p) == null) {
            return;
        }
        if (loadTurnoutIcon("unknown", rotation, l, element, name, p) == null) {
            return;
        }
        if (loadTurnoutIcon("inconsistent", rotation, l, element, name, p) == null) {
            return;
        }
    }
    Element elem = element.getChild("iconmaps");
    if (elem != null) {
        Attribute attr = elem.getAttribute("family");
        if (attr != null) {
            l.setFamily(attr.getValue());
        }
    }
    p.putItem(l);
    // load individual item's option settings after editor has set its global settings
    loadCommonAttributes(l, Editor.TURNOUTS, element);
}
Also used : NamedIcon(jmri.jmrit.catalog.NamedIcon) Attribute(org.jdom2.Attribute) Element(org.jdom2.Element) Editor(jmri.jmrit.display.Editor) TurnoutIcon(jmri.jmrit.display.TurnoutIcon)

Example 15 with Attribute

use of org.jdom2.Attribute in project JMRI by JMRI.

the class RollingStockAttribute method store.

/**
     * Create an XML element to represent this Entry. This member has to remain
     * synchronized with the detailed DTD in operations-cars.dtd and operations-engines.dtd.
     * @param root Common Element for storage.
     * @param eNames New format Element group name
     * @param eName New format Element name
     * @param oldName Backwards compatibility Element name
     *
     */
public void store(Element root, String eNames, String eName, String oldName) {
    if (Control.backwardCompatible) {
        Element values = new Element(oldName);
        for (String name : getNames()) {
            // NOI18N
            values.addContent(name + "%%");
        }
        root.addContent(values);
    }
    // new format using elements
    Element names = new Element(eNames);
    for (String name : getNames()) {
        Element e = new Element(eName);
        if (eName.equals(Xml.LENGTH)) {
            e.setAttribute(new Attribute(Xml.VALUE, name));
        } else {
            e.setAttribute(new Attribute(Xml.NAME, name));
        }
        names.addContent(e);
    }
    root.addContent(names);
}
Also used : Attribute(org.jdom2.Attribute) Element(org.jdom2.Element)

Aggregations

Attribute (org.jdom2.Attribute)104 Element (org.jdom2.Element)96 DataConversionException (org.jdom2.DataConversionException)17 Editor (jmri.jmrit.display.Editor)15 ArrayList (java.util.ArrayList)13 NamedIcon (jmri.jmrit.catalog.NamedIcon)13 IOException (java.io.IOException)12 LayoutEditor (jmri.jmrit.display.layoutEditor.LayoutEditor)10 File (java.io.File)8 Color (java.awt.Color)7 List (java.util.List)7 HashMap (java.util.HashMap)6 Asn1Integer (com.android.hotspot2.asn1.Asn1Integer)5 Asn1Object (com.android.hotspot2.asn1.Asn1Object)5 Asn1Oid (com.android.hotspot2.asn1.Asn1Oid)5 OidMappings (com.android.hotspot2.asn1.OidMappings)5 ASN1Encodable (com.android.org.bouncycastle.asn1.ASN1Encodable)5 ASN1EncodableVector (com.android.org.bouncycastle.asn1.ASN1EncodableVector)5 ASN1Set (com.android.org.bouncycastle.asn1.ASN1Set)5 DERBitString (com.android.org.bouncycastle.asn1.DERBitString)5