use of org.jdom2.Attribute in project JMRI by JMRI.
the class BlockValueFile method readBlockValues.
/*
* Reads Block values from a file in the user's preferences directory
* If the file containing block values does not exist this routine returns quietly.
* If a Block named in the file does not exist currently, that entry is quietly ignored.
*/
@SuppressWarnings("unchecked")
public void readBlockValues() throws org.jdom2.JDOMException, java.io.IOException {
log.debug("entered readBlockValues");
List<String> blocks = blockManager.getSystemNameList();
// check if file exists
if (checkFile(defaultFileName)) {
// file is present,
root = rootFromName(defaultFileName);
if ((root != null) && (blocks.size() > 0)) {
// there is a file and there are Blocks defined
Element blockvalues = root.getChild("blockvalues");
if (blockvalues != null) {
// there are values defined, read and set block values if Block exists.
List<Element> blockList = blockvalues.getChildren("block");
for (int i = 0; i < blockList.size(); i++) {
if ((blockList.get(i)).getAttribute("systemname") == null) {
log.warn("unexpected null in systemName " + blockList.get(i) + " " + blockList.get(i).getAttributes());
break;
}
String sysName = blockList.get(i).getAttribute("systemname").getValue();
// get Block - ignore entry if block not found
Block b = blockManager.getBySystemName(sysName);
if (b != null) {
// Block was found, set its value
Object v = blockList.get(i).getAttribute("value").getValue();
if (blockList.get(i).getAttribute("valueClass") != null) {
if (blockList.get(i).getAttribute("valueClass").getValue().equals("jmri.jmrit.roster.RosterEntry")) {
jmri.jmrit.roster.RosterEntry re = jmri.jmrit.roster.Roster.getDefault().getEntryForId(((String) v));
if (re != null) {
v = re;
}
}
}
b.setValue(v);
// set direction if there is one
int dd = jmri.Path.NONE;
Attribute a = blockList.get(i).getAttribute("dir");
if (a != null) {
try {
dd = a.getIntValue();
} catch (org.jdom2.DataConversionException e) {
log.error("failed to convert direction attribute");
}
}
b.setDirection(dd);
}
}
}
}
}
}
use of org.jdom2.Attribute in project JMRI by JMRI.
the class LayoutEditorXml method load.
/**
* Create a LayoutEditor object, then register and fill it, then pop it in a
* JFrame
*
* @param shared Top level Element to unpack.
*/
@Override
public boolean load(Element shared, Element perNode) {
boolean result = true;
Attribute a;
// find coordinates
int x = 0;
int y = 0;
// From this version onwards separate sizes for window and panel are used
int windowHeight = 400;
int windowWidth = 300;
int panelHeight = 340;
int panelWidth = 280;
int sidetrackwidth = 3;
int mainlinetrackwidth = 3;
try {
x = shared.getAttribute("x").getIntValue();
y = shared.getAttribute("y").getIntValue();
// For compatibility with previous versions, try and see if height and width tags are contained in the file
if ((a = shared.getAttribute("height")) != null) {
windowHeight = a.getIntValue();
panelHeight = windowHeight - 60;
}
if ((a = shared.getAttribute("width")) != null) {
windowWidth = a.getIntValue();
panelWidth = windowWidth - 18;
}
// For files created by the new version, retrieve window and panel sizes
if ((a = shared.getAttribute("windowheight")) != null) {
windowHeight = a.getIntValue();
}
if ((a = shared.getAttribute("windowwidth")) != null) {
windowWidth = a.getIntValue();
}
if ((a = shared.getAttribute("panelheight")) != null) {
panelHeight = a.getIntValue();
}
if ((a = shared.getAttribute("panelwidth")) != null) {
panelWidth = a.getIntValue();
}
mainlinetrackwidth = shared.getAttribute("mainlinetrackwidth").getIntValue();
sidetrackwidth = shared.getAttribute("sidetrackwidth").getIntValue();
} catch (org.jdom2.DataConversionException e) {
log.error("failed to convert LayoutEditor's attribute");
result = false;
}
double xScale = 1.0;
double yScale = 1.0;
a = shared.getAttribute("xscale");
if (a != null) {
try {
xScale = (Float.parseFloat(a.getValue()));
} catch (Exception e) {
log.error("failed to convert to float - " + a.getValue());
result = false;
}
}
a = shared.getAttribute("yscale");
if (a != null) {
try {
yScale = (Float.parseFloat(a.getValue()));
} catch (Exception e) {
log.error("failed to convert to float - " + a.getValue());
result = false;
}
}
// find the name and default track color
String name = "";
if (shared.getAttribute("name") != null) {
name = shared.getAttribute("name").getValue();
}
if (jmri.jmrit.display.PanelMenu.instance().isPanelNameUsed(name)) {
JFrame frame = new JFrame("DialogDemo");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
log.warn("File contains a panel with the same name (" + name + ") as an existing panel");
int n = JOptionPane.showConfirmDialog(frame, java.text.MessageFormat.format(rb.getString("DuplicatePanel"), new Object[] { name }), rb.getString("DuplicatePanelTitle"), JOptionPane.YES_NO_OPTION);
if (n == JOptionPane.NO_OPTION) {
return false;
}
}
String defaultColor = "black";
String defaultTextColor = "black";
if (shared.getAttribute("defaulttrackcolor") != null) {
defaultColor = shared.getAttribute("defaulttrackcolor").getValue();
}
if (shared.getAttribute("defaulttextcolor") != null) {
defaultTextColor = shared.getAttribute("defaulttextcolor").getValue();
}
//default to using use default track color for circle color
String turnoutCircleColor = "track";
if (shared.getAttribute("turnoutcirclecolor") != null) {
turnoutCircleColor = shared.getAttribute("turnoutcirclecolor").getValue();
}
int turnoutCircleSize = 2;
if (shared.getAttribute("turnoutcirclesize") != null) {
try {
turnoutCircleSize = shared.getAttribute("turnoutcirclesize").getIntValue();
} catch (DataConversionException e1) {
//leave at default if cannot convert
log.warn("unable to convert turnoutcirclesize");
}
}
boolean turnoutDrawUnselectedLeg = true;
if ((a = shared.getAttribute("turnoutdrawunselectedleg")) != null && a.getValue().equals("no")) {
turnoutDrawUnselectedLeg = false;
}
// create the objects
LayoutEditor panel = new LayoutEditor(name);
panel.setLayoutName(name);
panel.setMainlineTrackWidth(mainlinetrackwidth);
panel.setSideTrackWidth(sidetrackwidth);
panel.setDefaultTrackColor(defaultColor);
panel.setDefaultTextColor(defaultTextColor);
panel.setTurnoutCircleColor(turnoutCircleColor);
panel.setTurnoutCircleSize(turnoutCircleSize);
panel.setTurnoutDrawUnselectedLeg(turnoutDrawUnselectedLeg);
panel.setXScale(xScale);
panel.setYScale(yScale);
// turnout size parameters
double sz = 20.0;
a = shared.getAttribute("turnoutbx");
if (a != null) {
try {
sz = (Float.parseFloat(a.getValue()));
panel.setTurnoutBX(sz);
} catch (Exception e) {
log.error("failed to convert to float - " + a.getValue());
result = false;
}
}
a = shared.getAttribute("turnoutcx");
if (a != null) {
try {
sz = (Float.parseFloat(a.getValue()));
panel.setTurnoutCX(sz);
} catch (Exception e) {
log.error("failed to convert to float - " + a.getValue());
result = false;
}
}
a = shared.getAttribute("turnoutwid");
if (a != null) {
try {
sz = (Float.parseFloat(a.getValue()));
panel.setTurnoutWid(sz);
} catch (Exception e) {
log.error("failed to convert to float - " + a.getValue());
result = false;
}
}
a = shared.getAttribute("xoverlong");
if (a != null) {
try {
sz = (Float.parseFloat(a.getValue()));
panel.setXOverLong(sz);
} catch (Exception e) {
log.error("failed to convert to float - " + a.getValue());
result = false;
}
}
a = shared.getAttribute("xoverhwid");
if (a != null) {
try {
sz = (Float.parseFloat(a.getValue()));
panel.setXOverHWid(sz);
} catch (Exception e) {
log.error("failed to convert to float - " + a.getValue());
result = false;
}
}
a = shared.getAttribute("xovershort");
if (a != null) {
try {
sz = (Float.parseFloat(a.getValue()));
panel.setXOverShort(sz);
} catch (Exception e) {
log.error("failed to convert to float - " + a.getValue());
result = false;
}
}
// grid size parameter
// this value is never used but it's the default
int iz = 10;
a = shared.getAttribute("gridSize");
if (a != null) {
try {
iz = (Integer.parseInt(a.getValue()));
panel.setGridSize(iz);
} catch (Exception e) {
log.error("failed to convert to int - " + a.getValue());
result = false;
}
}
// second grid size parameter
// this value is never used but it's the default
iz = 10;
a = shared.getAttribute("gridSize2nd");
if (a != null) {
try {
iz = (Integer.parseInt(a.getValue()));
panel.setGridSize2nd(iz);
} catch (Exception e) {
log.error("failed to convert to int - " + a.getValue());
result = false;
}
}
// set contents state
String slValue = "both";
if ((a = shared.getAttribute("sliders")) != null && a.getValue().equals("no")) {
slValue = "none";
}
if ((a = shared.getAttribute("scrollable")) != null) {
slValue = a.getValue();
}
boolean edValue = true;
if ((a = shared.getAttribute("editable")) != null && a.getValue().equals("no")) {
edValue = false;
}
boolean value = true;
if ((a = shared.getAttribute("positionable")) != null && a.getValue().equals("no")) {
value = false;
}
panel.setAllPositionable(value);
value = true;
if ((a = shared.getAttribute("controlling")) != null && a.getValue().equals("no")) {
value = false;
}
panel.setAllControlling(value);
value = true;
if ((a = shared.getAttribute("animating")) != null && a.getValue().equals("no")) {
value = false;
}
panel.setTurnoutAnimation(value);
boolean hbValue = true;
if ((a = shared.getAttribute("showhelpbar")) != null && a.getValue().equals("no")) {
hbValue = false;
}
boolean dgValue = false;
if ((a = shared.getAttribute("drawgrid")) != null && a.getValue().equals("yes")) {
dgValue = true;
}
boolean sgaValue = false;
if ((a = shared.getAttribute("snaponadd")) != null && a.getValue().equals("yes")) {
sgaValue = true;
}
boolean sgmValue = false;
if ((a = shared.getAttribute("snaponmove")) != null && a.getValue().equals("yes")) {
sgmValue = true;
}
boolean aaValue = false;
if ((a = shared.getAttribute("antialiasing")) != null && a.getValue().equals("yes")) {
aaValue = true;
}
value = false;
if ((a = shared.getAttribute("turnoutcircles")) != null && a.getValue().equals("yes")) {
value = true;
}
panel.setTurnoutCircles(value);
value = false;
if ((a = shared.getAttribute("tooltipsnotedit")) != null && a.getValue().equals("yes")) {
value = true;
}
panel.setTooltipsNotEdit(value);
value = false;
if ((a = shared.getAttribute("autoblkgenerate")) != null && a.getValue().equals("yes")) {
value = true;
}
panel.setAutoBlockAssignment(value);
value = true;
if ((a = shared.getAttribute("tooltipsinedit")) != null && a.getValue().equals("no")) {
value = false;
}
panel.setTooltipsInEdit(value);
// set default track color
if ((a = shared.getAttribute("defaulttrackcolor")) != null) {
panel.setDefaultTrackColor(a.getValue());
}
// set default track color
if ((a = shared.getAttribute("defaultoccupiedtrackcolor")) != null) {
panel.setDefaultOccupiedTrackColor(a.getValue());
}
// set default track color
if ((a = shared.getAttribute("defaultalternativetrackcolor")) != null) {
panel.setDefaultAlternativeTrackColor(a.getValue());
}
try {
int red = shared.getAttribute("redBackground").getIntValue();
int blue = shared.getAttribute("blueBackground").getIntValue();
int green = shared.getAttribute("greenBackground").getIntValue();
panel.setDefaultBackgroundColor(ColorUtil.colorToString(new Color(red, green, blue)));
panel.setBackgroundColor(new Color(red, green, blue));
} catch (org.jdom2.DataConversionException e) {
log.warn("Could not parse color attributes!");
} catch (NullPointerException e) {
// considered normal if the attributes are not present
}
if (shared.getAttribute("useDirectTurnoutControl") != null) {
if (shared.getAttribute("useDirectTurnoutControl").getValue().equals("yes")) {
panel.setDirectTurnoutControl(true);
}
}
// note: moving zoom attribute into per-window user preference
//if (shared.getAttribute("zoom") != null) {
// panel.setZoom(Double.valueOf(shared.getAttribute("zoom").getValue()));
//}
// Set editor's option flags, load content after
// this so that individual item flags are set as saved
panel.initView();
// load the contents
List<Element> items = shared.getChildren();
for (int i = 0; i < items.size(); i++) {
// get the class, hence the adapter object to do loading
Element item = items.get(i);
String adapterName = item.getAttribute("class").getValue();
if (log.isDebugEnabled()) {
String id = "<null>";
try {
id = item.getAttribute("ident").getValue();
log.debug("Load " + id + " for [" + panel.getName() + "] via " + adapterName);
} catch (Exception e) {
log.debug("Load layout object for [" + panel.getName() + "] via " + adapterName);
}
}
try {
XmlAdapter adapter = (XmlAdapter) Class.forName(adapterName).newInstance();
// and do it
adapter.load(item, panel);
if (!panel.loadOK()) {
result = false;
}
} catch (Exception e) {
log.error("Exception while loading " + item.getName() + ":" + e);
result = false;
e.printStackTrace();
}
}
// dispose of url correction data
panel.disposeLoadData();
// final initialization of objects
panel.setConnections();
// display the results
// set first since other attribute use this setting
panel.setAllEditable(edValue);
panel.setShowHelpBar(hbValue);
panel.setDrawGrid(dgValue);
panel.setSnapOnAdd(sgaValue);
panel.setSnapOnMove(sgmValue);
panel.setAntialiasingOn(aaValue);
panel.setScroll(slValue);
panel.pack();
panel.setLayoutDimensions(windowWidth, windowHeight, x, y, panelWidth, panelHeight);
// always show the panel
panel.setVisible(true);
panel.resetDirty();
// register the resulting panel for later configuration
ConfigureManager cm = InstanceManager.getNullableDefault(jmri.ConfigureManager.class);
if (cm != null) {
cm.registerUser(panel);
}
//open Dispatcher frame if any Transits are defined, and open Dispatcher flag set on
if (jmri.InstanceManager.getDefault(jmri.TransitManager.class).getSystemNameList().size() > 0) {
if (shared.getAttribute("openDispatcher") != null) {
if (shared.getAttribute("openDispatcher").getValue().equals("yes")) {
panel.setOpenDispatcherOnLoad(true);
jmri.jmrit.dispatcher.DispatcherFrame df = jmri.jmrit.dispatcher.DispatcherFrame.instance();
df.loadAtStartup();
} else {
panel.setOpenDispatcherOnLoad(false);
}
}
}
return result;
}
use of org.jdom2.Attribute in project JMRI by JMRI.
the class LayoutTurnoutXml 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;
int tType = LayoutTurnout.RH_TURNOUT;
try {
x = element.getAttribute("xcen").getFloatValue();
y = element.getAttribute("ycen").getFloatValue();
tType = element.getAttribute("type").getIntValue();
} catch (org.jdom2.DataConversionException e) {
log.error("failed to convert layoutturnout attribute");
}
int version = 1;
try {
version = element.getAttribute("ver").getIntValue();
} catch (org.jdom2.DataConversionException e) {
log.error("failed to convert layoutturnout b coords attribute");
} catch (java.lang.NullPointerException e) {
//can be ignored as panel file may not support method
}
// create the new LayoutTurnout
LayoutTurnout l = new LayoutTurnout(name, tType, new Point2D.Double(x, y), 0.0, 1.0, 1.0, p, version);
// get remaining attributes
Attribute a = element.getAttribute("blockname");
if (a != null) {
l.tBlockName = a.getValue();
}
a = element.getAttribute("blockbname");
if (a != null) {
l.tBlockBName = a.getValue();
}
a = element.getAttribute("blockcname");
if (a != null) {
l.tBlockCName = a.getValue();
}
a = element.getAttribute("blockdname");
if (a != null) {
l.tBlockDName = a.getValue();
}
a = element.getAttribute("turnoutname");
if (a != null) {
l.tTurnoutName = a.getValue();
}
a = element.getAttribute("secondturnoutname");
if (a != null) {
l.tSecondTurnoutName = 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("signala1name");
if (a != null) {
l.setSignalA1Name(a.getValue());
}
a = element.getAttribute("signala2name");
if (a != null) {
l.setSignalA2Name(a.getValue());
}
a = element.getAttribute("signala3name");
if (a != null) {
l.setSignalA3Name(a.getValue());
}
a = element.getAttribute("signalb1name");
if (a != null) {
l.setSignalB1Name(a.getValue());
}
a = element.getAttribute("signalb2name");
if (a != null) {
l.setSignalB2Name(a.getValue());
}
a = element.getAttribute("signalc1name");
if (a != null) {
l.setSignalC1Name(a.getValue());
}
a = element.getAttribute("signalc2name");
if (a != null) {
l.setSignalC2Name(a.getValue());
}
a = element.getAttribute("signald1name");
if (a != null) {
l.setSignalD1Name(a.getValue());
}
a = element.getAttribute("signald2name");
if (a != null) {
l.setSignalD2Name(a.getValue());
}
a = element.getAttribute("linkedturnoutname");
if (a != null) {
l.linkedTurnoutName = a.getValue();
try {
l.linkType = element.getAttribute("linktype").getIntValue();
} catch (org.jdom2.DataConversionException e) {
log.error("failed to convert linked layout turnout type");
}
}
a = element.getAttribute("continuing");
if (a != null) {
int continuing = Turnout.CLOSED;
try {
continuing = element.getAttribute("continuing").getIntValue();
} catch (org.jdom2.DataConversionException e) {
log.error("failed to convert continuingsense attribute");
}
l.setContinuingSense(continuing);
}
boolean value = false;
if ((a = element.getAttribute("disabled")) != null && a.getValue().equals("yes")) {
value = true;
}
l.setDisabled(value);
value = false;
if ((a = element.getAttribute("disableWhenOccupied")) != null && a.getValue().equals("yes")) {
value = true;
}
l.setDisableWhenOccupied(value);
boolean hide = false;
if (element.getAttribute("hidden") != null) {
if (element.getAttribute("hidden").getValue().equals("yes")) {
hide = true;
}
}
l.setHidden(hide);
if (version == 2) {
try {
x = element.getAttribute("xa").getFloatValue();
y = element.getAttribute("ya").getFloatValue();
l.setCoordsA(new Point2D.Double(x, y));
} catch (org.jdom2.DataConversionException e) {
log.error("failed to convert layoutturnout b coords attribute");
} catch (java.lang.NullPointerException e) {
//can be ignored as panel file may not support method
}
}
try {
x = element.getAttribute("xb").getFloatValue();
y = element.getAttribute("yb").getFloatValue();
} catch (org.jdom2.DataConversionException e) {
log.error("failed to convert layoutturnout b coords attribute");
}
l.setCoordsB(new Point2D.Double(x, y));
try {
x = element.getAttribute("xc").getFloatValue();
y = element.getAttribute("yc").getFloatValue();
} catch (org.jdom2.DataConversionException e) {
log.error("failed to convert layoutturnout c coords attribute");
}
l.setCoordsC(new Point2D.Double(x, y));
if (version == 2) {
try {
x = element.getAttribute("xd").getFloatValue();
y = element.getAttribute("yd").getFloatValue();
l.setCoordsD(new Point2D.Double(x, y));
} catch (org.jdom2.DataConversionException e) {
log.error("failed to convert layoutturnout c coords attribute");
} catch (java.lang.NullPointerException e) {
//can be ignored as panel file may not support method
}
}
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.setSensorA(sensor);
}
}
if (element.getChild("sensorB") != null) {
String sensor = element.getChild("sensorB").getText();
if (sensor != null && !sensor.equals("")) {
l.setSensorB(sensor);
}
}
if (element.getChild("sensorC") != null) {
String sensor = element.getChild("sensorC").getText();
if (sensor != null && !sensor.equals("")) {
l.setSensorC(sensor);
}
}
if (element.getChild("sensorD") != null) {
String sensor = element.getChild("sensorD").getText();
if (sensor != null && !sensor.equals("")) {
l.setSensorD(sensor);
}
}
p.turnoutList.add(l);
}
use of org.jdom2.Attribute 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);
}
use of org.jdom2.Attribute 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);
}
Aggregations