Search in sources :

Example 21 with DataConversionException

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

the class LevelXingXml method load.

/**
     * Load, starting with the levelxing element, then all the other data
     *
     * @param element Top level Element to unpack.
     * @param o       LayoutEditor as an Object
     */
@Override
public void load(Element element, Object o) {
    // create the objects
    LayoutEditor p = (LayoutEditor) o;
    // get center point
    String name = element.getAttribute("ident").getValue();
    double x = 0.0;
    double y = 0.0;
    try {
        x = element.getAttribute("xcen").getFloatValue();
        y = element.getAttribute("ycen").getFloatValue();
    } catch (org.jdom2.DataConversionException e) {
        log.error("failed to convert levelxing center  attribute");
    }
    // create the new LevelXing
    LevelXing l = new LevelXing(name, new Point2D.Double(x, y), p);
    // get remaining attributes
    Attribute a = element.getAttribute("blocknameac");
    if (a != null) {
        l.tBlockNameAC = a.getValue();
    }
    a = element.getAttribute("blocknamebd");
    if (a != null) {
        l.tBlockNameBD = a.getValue();
    }
    a = element.getAttribute("connectaname");
    if (a != null) {
        l.connectAName = a.getValue();
    }
    a = element.getAttribute("connectbname");
    if (a != null) {
        l.connectBName = a.getValue();
    }
    a = element.getAttribute("connectcname");
    if (a != null) {
        l.connectCName = a.getValue();
    }
    a = element.getAttribute("connectdname");
    if (a != null) {
        l.connectDName = a.getValue();
    }
    a = element.getAttribute("signalaname");
    if (a != null) {
        l.setSignalAName(a.getValue());
    }
    a = element.getAttribute("signalbname");
    if (a != null) {
        l.setSignalBName(a.getValue());
    }
    a = element.getAttribute("signalcname");
    if (a != null) {
        l.setSignalCName(a.getValue());
    }
    a = element.getAttribute("signaldname");
    if (a != null) {
        l.setSignalDName(a.getValue());
    }
    try {
        x = element.getAttribute("xa").getFloatValue();
        y = element.getAttribute("ya").getFloatValue();
    } catch (org.jdom2.DataConversionException e) {
        log.error("failed to convert levelxing a coords attribute");
    }
    l.setCoordsA(new Point2D.Double(x, y));
    try {
        x = element.getAttribute("xb").getFloatValue();
        y = element.getAttribute("yb").getFloatValue();
    } catch (org.jdom2.DataConversionException e) {
        log.error("failed to convert levelxing b coords attribute");
    }
    l.setCoordsB(new Point2D.Double(x, y));
    if (element.getChild("signalAMast") != null) {
        String mast = element.getChild("signalAMast").getText();
        if (mast != null && !mast.equals("")) {
            l.setSignalAMast(mast);
        }
    }
    if (element.getChild("signalBMast") != null) {
        String mast = element.getChild("signalBMast").getText();
        if (mast != null && !mast.equals("")) {
            l.setSignalBMast(mast);
        }
    }
    if (element.getChild("signalCMast") != null) {
        String mast = element.getChild("signalCMast").getText();
        if (mast != null && !mast.equals("")) {
            l.setSignalCMast(mast);
        }
    }
    if (element.getChild("signalDMast") != null) {
        String mast = element.getChild("signalDMast").getText();
        if (mast != null && !mast.equals("")) {
            l.setSignalDMast(mast);
        }
    }
    if (element.getChild("sensorA") != null) {
        String sensor = element.getChild("sensorA").getText();
        if (sensor != null && !sensor.equals("")) {
            l.setSensorAName(sensor);
        }
    }
    if (element.getChild("sensorB") != null) {
        String sensor = element.getChild("sensorB").getText();
        if (sensor != null && !sensor.equals("")) {
            l.setSensorBName(sensor);
        }
    }
    if (element.getChild("sensorC") != null) {
        String sensor = element.getChild("sensorC").getText();
        if (sensor != null && !sensor.equals("")) {
            l.setSensorCName(sensor);
        }
    }
    if (element.getChild("sensorD") != null) {
        String sensor = element.getChild("sensorD").getText();
        if (sensor != null && !sensor.equals("")) {
            l.setSensorDName(sensor);
        }
    }
    p.xingList.add(l);
}
Also used : LayoutEditor(jmri.jmrit.display.layoutEditor.LayoutEditor) LevelXing(jmri.jmrit.display.layoutEditor.LevelXing) Point2D(java.awt.geom.Point2D) Attribute(org.jdom2.Attribute)

Example 22 with DataConversionException

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

the class TrackSegmentXml method load.

/**
     * Load, starting with the tracksegment element, then all all attributes
     *
     * @param element Top level Element to unpack.
     * @param o       LayoutEditor as an Object
     */
@Override
public void load(Element element, Object o) {
    // create the objects
    LayoutEditor p = (LayoutEditor) o;
    // get attributes
    String name = element.getAttribute("ident").getValue();
    int type1 = LayoutTrack.NONE;
    int type2 = LayoutTrack.NONE;
    try {
        type1 = element.getAttribute("type1").getIntValue();
        type2 = element.getAttribute("type2").getIntValue();
    } catch (org.jdom2.DataConversionException e) {
        log.error("failed to convert tracksegment attribute");
    }
    boolean dash = true;
    if (element.getAttribute("dashed").getValue().equals("no")) {
        dash = false;
    }
    boolean main = true;
    if (element.getAttribute("mainline").getValue().equals("no")) {
        main = false;
    }
    boolean hide = true;
    if (element.getAttribute("hidden").getValue().equals("no")) {
        hide = false;
    }
    String con1Name = element.getAttribute("connect1name").getValue();
    String con2Name = element.getAttribute("connect2name").getValue();
    // create the new TrackSegment
    TrackSegment l = new TrackSegment(name, con1Name, type1, con2Name, type2, dash, main, hide, p);
    try {
        if (element.getAttribute("arc").getValue().equals("yes")) {
            l.setArc(true);
        }
    } catch (NullPointerException e) {
    }
    if (l.getArc()) {
        //int startangle = 0;
        try {
            if (element.getAttribute("flip").getValue().equals("yes")) {
                l.setFlip(true);
            }
        } catch (NullPointerException e) {
        }
        //considered normal if the attribute is not present }
        try {
            if (element.getAttribute("circle").getValue().equals("yes")) {
                l.setCircle(true);
            }
        } catch (NullPointerException e) {
        }
        if (l.getCircle()) {
            try {
                l.setAngle(element.getAttribute("angle").getDoubleValue());
            } catch (org.jdom2.DataConversionException e) {
                log.error("failed to convert tracksegment attribute");
            } catch (NullPointerException e) {
            // considered normal if the attribute not present
            }
        }
        try {
            if (element.getAttribute("hideConLines").getValue().equals("yes")) {
                l.hideConstructionLines(TrackSegment.HIDECON);
            }
        } catch (NullPointerException e) {
        }
    //considered normal if the attribute is not present }
    }
    try {
        if (element.getAttribute("bezier").getValue().equals("yes")) {
            // load control points
            Element controlpointsElement = element.getChild("controlpoints");
            if (null != controlpointsElement) {
                List<Element> elementList = controlpointsElement.getChildren("controlpoint");
                if (null != elementList) {
                    if (elementList.size() >= 2) {
                        for (int i = 0; i < elementList.size(); i++) {
                            double x = 0.0;
                            double y = 0.0;
                            int index = 0;
                            Element relem = elementList.get(i);
                            try {
                                index = (relem.getAttribute("index")).getIntValue();
                                x = (relem.getAttribute("x")).getFloatValue();
                                y = (relem.getAttribute("y")).getFloatValue();
                            } catch (org.jdom2.DataConversionException e) {
                                log.error("failed to convert controlpoint coordinates or index attributes");
                            }
                            l.setBezierControlPoint(new Point2D.Double(x, y), index);
                        }
                    } else {
                        log.error("Track segment Bezier two controlpoint elements not found. (found " + elementList.size() + ")");
                    }
                } else {
                    log.error("Track segment Bezier controlpoint elements not found.");
                }
            } else {
                log.error("Track segment Bezier controlpoints element not found.");
            }
            // NOTE: do this LAST (so reCenter won't be called yet)
            l.setBezier(true);
        }
    } catch (NullPointerException e) {
    }
    //considered normal if the attribute is not present }
    // get remaining attribute
    Attribute a = element.getAttribute("blockname");
    if (a != null) {
        l.tBlockName = a.getValue();
    }
    p.trackList.add(l);
}
Also used : LayoutEditor(jmri.jmrit.display.layoutEditor.LayoutEditor) Attribute(org.jdom2.Attribute) Element(org.jdom2.Element) TrackSegment(jmri.jmrit.display.layoutEditor.TrackSegment) Point2D(java.awt.geom.Point2D)

Example 23 with DataConversionException

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

the class LayoutTurntableXml method load.

/**
     * Load, starting with the layoutturntable element, then all the other data
     *
     * @param element Top level Element to unpack.
     * @param o       LayoutEditor as an Object
     */
@Override
public void load(Element element, Object o) {
    // create the objects
    LayoutEditor p = (LayoutEditor) o;
    // get center point
    String name = element.getAttribute("ident").getValue();
    double x = 0.0;
    double y = 0.0;
    double radius = 25.0;
    try {
        x = element.getAttribute("xcen").getFloatValue();
        y = element.getAttribute("ycen").getFloatValue();
        radius = element.getAttribute("radius").getFloatValue();
    } catch (org.jdom2.DataConversionException e) {
        log.error("failed to convert layoutturntable center or radius attributes");
    }
    // create the new LayoutTurntable
    LayoutTurntable l = new LayoutTurntable(name, new Point2D.Double(x, y), p);
    l.setRadius(radius);
    boolean turnoutControl = false;
    if (element.getAttribute("turnoutControlled") != null) {
        if (element.getAttribute("turnoutControlled").getValue().equals("yes")) {
            turnoutControl = true;
        }
    }
    l.setTurnoutControlled(turnoutControl);
    // load ray tracks 
    List<Element> rayTrackList = element.getChildren("raytrack");
    if (rayTrackList.size() > 0) {
        for (int i = 0; i < rayTrackList.size(); i++) {
            double angle = 0.0;
            int index = 0;
            Element relem = rayTrackList.get(i);
            try {
                angle = (relem.getAttribute("angle")).getFloatValue();
                index = (relem.getAttribute("index")).getIntValue();
            } catch (org.jdom2.DataConversionException e) {
                log.error("failed to convert ray track angle or index attributes");
            }
            String connectName = "";
            Attribute a = relem.getAttribute("connectname");
            if (a != null) {
                connectName = a.getValue();
            }
            l.addRayTrack(angle, index, connectName);
            if (turnoutControl && relem.getAttribute("turnout") != null) {
                //Turnout t = jmri.InstanceManager.turnoutManagerInstance().getTurnout();
                if (relem.getAttribute("turnoutstate").getValue().equals("thrown")) {
                    l.setRayTurnout(index, relem.getAttribute("turnout").getValue(), Turnout.THROWN);
                } else {
                    l.setRayTurnout(index, relem.getAttribute("turnout").getValue(), Turnout.CLOSED);
                }
            }
        }
    }
    p.turntableList.add(l);
}
Also used : LayoutEditor(jmri.jmrit.display.layoutEditor.LayoutEditor) Attribute(org.jdom2.Attribute) Element(org.jdom2.Element) Point2D(java.awt.geom.Point2D) LayoutTurntable(jmri.jmrit.display.layoutEditor.LayoutTurntable)

Example 24 with DataConversionException

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

the class PositionablePointXml method load.

/**
     * Load, starting with the layoutblock element, then all the value-icon
     * pairs
     *
     * @param element Top level Element to unpack.
     * @param o       LayoutEditor as an Object
     */
@Override
public void load(Element element, Object o) {
    // create the objects
    LayoutEditor p = (LayoutEditor) o;
    // get attributes
    String name = element.getAttribute("ident").getValue();
    int type = PositionablePoint.ANCHOR;
    double x = 0.0;
    double y = 0.0;
    try {
        x = element.getAttribute("x").getFloatValue();
        y = element.getAttribute("y").getFloatValue();
        type = element.getAttribute("type").getIntValue();
    } catch (org.jdom2.DataConversionException e) {
        log.error("failed to convert positionablepoint attribute");
    }
    // create the new PositionablePoint
    PositionablePoint l = new PositionablePoint(name, type, new Point2D.Double(x, y), p);
    // get remaining attributes
    Attribute a = element.getAttribute("connect1name");
    if (a != null) {
        l.trackSegment1Name = a.getValue();
    }
    a = element.getAttribute("connect2name");
    if (a != null) {
        l.trackSegment2Name = a.getValue();
    }
    a = element.getAttribute("eastboundsignal");
    if (a != null) {
        l.setEastBoundSignal(a.getValue());
    }
    a = element.getAttribute("westboundsignal");
    if (a != null) {
        l.setWestBoundSignal(a.getValue());
    }
    a = element.getAttribute("eastboundsignalmast");
    if (a != null) {
        l.setEastBoundSignalMast(a.getValue());
    }
    a = element.getAttribute("westboundsignalmast");
    if (a != null) {
        l.setWestBoundSignalMast(a.getValue());
    }
    a = element.getAttribute("eastboundsensor");
    if (a != null) {
        l.setEastBoundSensor(a.getValue());
    }
    a = element.getAttribute("westboundsensor");
    if (a != null) {
        l.setWestBoundSensor(a.getValue());
    }
    if (type == PositionablePoint.EDGE_CONNECTOR && element.getAttribute("linkedpanel") != null && element.getAttribute("linkpointid") != null) {
        String linkedEditorName = element.getAttribute("linkedpanel").getValue();
        LayoutEditor linkedEditor = (LayoutEditor) jmri.jmrit.display.PanelMenu.instance().getEditorByName(linkedEditorName);
        if (linkedEditor != null) {
            String linkedPoint = element.getAttribute("linkpointid").getValue();
            for (PositionablePoint point : linkedEditor.pointList) {
                if (point.getType() == PositionablePoint.EDGE_CONNECTOR && point.getID().equals(linkedPoint)) {
                    point.setLinkedPoint(l);
                    l.setLinkedPoint(point);
                    break;
                }
            }
        }
    }
    p.pointList.add(l);
}
Also used : LayoutEditor(jmri.jmrit.display.layoutEditor.LayoutEditor) Point2D(java.awt.geom.Point2D) Attribute(org.jdom2.Attribute) PositionablePoint(jmri.jmrit.display.layoutEditor.PositionablePoint) PositionablePoint(jmri.jmrit.display.layoutEditor.PositionablePoint)

Example 25 with DataConversionException

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

the class LayoutBlockManagerXml method loadLayoutBlocks.

/**
     * Utility method to load the individual LayoutBlock objects. If there's no
     * additional info needed for a specific layoutblock type, invoke this with
     * the parent of the set of layoutblock elements.
     *
     * @param layoutblocks Element containing the layoutblock elements to load.
     */
public void loadLayoutBlocks(Element layoutblocks) {
    LayoutBlockManager tm = InstanceManager.getDefault(LayoutBlockManager.class);
    if (layoutblocks.getAttribute("blockrouting") != null) {
        if (layoutblocks.getAttribute("blockrouting").getValue().equals("yes")) {
            tm.enableAdvancedRouting(true);
        }
    }
    if (layoutblocks.getAttribute("routingStablisedSensor") != null) {
        try {
            tm.setStabilisedSensor(layoutblocks.getAttribute("routingStablisedSensor").getValue());
        } catch (jmri.JmriException e) {
        }
    }
    List<Element> layoutblockList = layoutblocks.getChildren("layoutblock");
    if (log.isDebugEnabled()) {
        log.debug("Found " + layoutblockList.size() + " layoutblocks");
    }
    for (int i = 0; i < layoutblockList.size(); i++) {
        String sysName = getSystemName(layoutblockList.get(i));
        if (sysName == null) {
            log.warn("unexpected null in systemName " + ((layoutblockList.get(i))) + " " + ((layoutblockList.get(i))).getAttributes());
            break;
        }
        String userName = getUserName(layoutblockList.get(i));
        LayoutBlock b = tm.createNewLayoutBlock(sysName, userName);
        // load common parts
        loadCommon(b, layoutblockList.get(i));
        if (b != null) {
            // set attributes
            Color color = ColorUtil.stringToColor(((layoutblockList.get(i))).getAttribute("trackcolor").getValue());
            b.setBlockTrackColor(color);
            color = ColorUtil.stringToColor(((layoutblockList.get(i))).getAttribute("occupiedcolor").getValue());
            b.setBlockOccupiedColor(color);
            Attribute a = ((layoutblockList.get(i))).getAttribute("extracolor");
            if (a != null) {
                b.setBlockExtraColor(ColorUtil.stringToColor(a.getValue()));
            }
            a = ((layoutblockList.get(i))).getAttribute("occupancysensor");
            if (a != null) {
                b.setOccupancySensorName(a.getValue());
            }
            a = ((layoutblockList.get(i))).getAttribute("memory");
            if (a != null) {
                b.setMemoryName(a.getValue());
            }
            a = ((layoutblockList.get(i))).getAttribute("occupancysensorsense");
            int sense = Sensor.ACTIVE;
            try {
                sense = ((layoutblockList.get(i))).getAttribute("occupiedsense").getIntValue();
            } catch (org.jdom2.DataConversionException e) {
                log.error("failed to convert occupiedsense attribute");
            }
            b.setOccupiedSense(sense);
            if (((layoutblockList.get(i))).getChild("metric") != null) {
                String stMetric = ((layoutblockList.get(i))).getChild("metric").getText();
                try {
                    b.setBlockMetric(Integer.valueOf(stMetric));
                } catch (java.lang.NumberFormatException e) {
                    log.error("failed to convert metric attribute for block " + b.getDisplayName());
                }
            }
        }
    }
}
Also used : Attribute(org.jdom2.Attribute) Element(org.jdom2.Element) Color(java.awt.Color) LayoutBlock(jmri.jmrit.display.layoutEditor.LayoutBlock) LayoutBlockManager(jmri.jmrit.display.layoutEditor.LayoutBlockManager)

Aggregations

Element (org.jdom2.Element)49 Attribute (org.jdom2.Attribute)48 DataConversionException (org.jdom2.DataConversionException)18 Editor (jmri.jmrit.display.Editor)13 NamedIcon (jmri.jmrit.catalog.NamedIcon)11 LayoutEditor (jmri.jmrit.display.layoutEditor.LayoutEditor)9 Color (java.awt.Color)7 Point2D (java.awt.geom.Point2D)6 Point (java.awt.Point)5 ConfigureManager (jmri.ConfigureManager)4 AbstractXmlAdapter (jmri.configurexml.AbstractXmlAdapter)4 XmlAdapter (jmri.configurexml.XmlAdapter)4 DataElement (pcgen.core.doomsdaybook.DataElement)4 Block (jmri.Block)3 Memory (jmri.Memory)3 SignalHead (jmri.SignalHead)3 Turnout (jmri.Turnout)3 Portal (jmri.jmrit.logix.Portal)3 InvocationTargetException (java.lang.reflect.InvocationTargetException)2 SortOrder (javax.swing.SortOrder)2