From: <mat...@us...> - 2015-07-03 10:23:56
|
Revision: 29591 http://sourceforge.net/p/jmri/code/29591 Author: matthewharris Date: 2015-07-03 10:23:54 +0000 (Fri, 03 Jul 2015) Log Message: ----------- bring in r29584 Revision Links: -------------- http://sourceforge.net/p/jmri/code/29584 Modified Paths: -------------- branches/jmri/releases/3.11.10/java/src/jmri/jmrit/beantable/signalmast/AddSignalMastPanel.java branches/jmri/releases/3.11.10/java/src/jmri/managers/DefaultSignalSystemManager.java Property Changed: ---------------- branches/jmri/releases/3.11.10/ Index: branches/jmri/releases/3.11.10 =================================================================== --- branches/jmri/releases/3.11.10 2015-07-03 09:34:40 UTC (rev 29590) +++ branches/jmri/releases/3.11.10 2015-07-03 10:23:54 UTC (rev 29591) Property changes on: branches/jmri/releases/3.11.10 ___________________________________________________________________ Modified: svn:mergeinfo ## -4,4 +4,4 ## /branches/jmri/users/jake/split_programmer:27750-27923 /branches/jmri/users/rhwood:23964-24746 /branches/jmri/users/zoo/jmri-head:19479-19491 -/trunk/jmri:29471-29486,29488,29490,29512-29513,29515,29533,29539,29549,29552,29554,29569,29571,29581 +/trunk/jmri:29471-29486,29488,29490,29512-29513,29515,29533,29539,29549,29552,29554,29569,29571,29581,29584 \ No newline at end of property Modified: branches/jmri/releases/3.11.10/java/src/jmri/jmrit/beantable/signalmast/AddSignalMastPanel.java =================================================================== --- branches/jmri/releases/3.11.10/java/src/jmri/jmrit/beantable/signalmast/AddSignalMastPanel.java 2015-07-03 09:34:40 UTC (rev 29590) +++ branches/jmri/releases/3.11.10/java/src/jmri/jmrit/beantable/signalmast/AddSignalMastPanel.java 2015-07-03 10:23:54 UTC (rev 29591) @@ -453,27 +453,30 @@ // do file IO to get all the appearances // gather all the appearance files //Look for the default system defined ones first - File[] apps = new File(FileUtil.findURL("xml/signals/" + sigsysname, FileUtil.Location.INSTALLED).toURI()).listFiles(); - for (File app : apps) { - if (app.getName().startsWith("appearance") && app.getName().endsWith(".xml")) { - log.debug(" found file: " + app.getName()); - // load it and get name - mastNames.add(app); - jmri.jmrit.XmlFile xf = new jmri.jmrit.XmlFile() { - }; - Element root = xf.rootFromFile(app); - String name = root.getChild("name").getText(); - mastBox.addItem(name); - map.put(name, root.getChild("appearances") - .getChild("appearance") - .getChildren("show") - .size()); + URL path = FileUtil.findURL("xml/signals/" + sigsysname, FileUtil.Location.INSTALLED); + if (path != null) { + File[] apps = new File(path.toURI()).listFiles(); + for (File app : apps) { + if (app.getName().startsWith("appearance") && app.getName().endsWith(".xml")) { + log.debug(" found file: " + app.getName()); + // load it and get name + mastNames.add(app); + jmri.jmrit.XmlFile xf = new jmri.jmrit.XmlFile() { + }; + Element root = xf.rootFromFile(app); + String name = root.getChild("name").getText(); + mastBox.addItem(name); + map.put(name, root.getChild("appearances") + .getChild("appearance") + .getChildren("show") + .size()); + } } } } catch (org.jdom2.JDOMException e) { mastBox.addItem("Failed to create definition, did you select a system?"); log.warn("in loadMastDefinitions", e); - } catch (java.io.IOException | URISyntaxException | NullPointerException e) { + } catch (java.io.IOException | URISyntaxException e) { mastBox.addItem("Failed to read definition, did you select a system?"); log.warn("in loadMastDefinitions", e); } Modified: branches/jmri/releases/3.11.10/java/src/jmri/managers/DefaultSignalSystemManager.java =================================================================== --- branches/jmri/releases/3.11.10/java/src/jmri/managers/DefaultSignalSystemManager.java 2015-07-03 09:34:40 UTC (rev 29590) +++ branches/jmri/releases/3.11.10/java/src/jmri/managers/DefaultSignalSystemManager.java 2015-07-03 10:23:54 UTC (rev 29591) @@ -2,6 +2,7 @@ package jmri.managers; import java.io.File; +import java.io.IOException; import java.lang.reflect.Constructor; import java.net.URISyntaxException; import java.net.URL; @@ -14,6 +15,7 @@ import jmri.jmrit.XmlFile; import jmri.util.FileUtil; import org.jdom2.Element; +import org.jdom2.JDOMException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -121,7 +123,7 @@ } catch (URISyntaxException ex) { log.error("Unable to get installed signals.", ex); } - if(signalDir != null){ + if (signalDir != null) { File[] files = signalDir.listFiles(); for (File file : files) { if (file.isDirectory()) { @@ -140,39 +142,32 @@ SignalSystem makeBean(String name) { //First check to see if the bean is in the default system directory - String filename = "xml" + File.separator + "signals" - + File.separator + name - + File.separator + "aspects.xml"; - log.debug("load from " + filename); + URL path = FileUtil.findURL("xml/signals/" + name + "/aspects.xml", FileUtil.Location.INSTALLED); + log.debug("load from {}", path); XmlFile xf = new AspectFile(); - File file = new File(filename); - if (file.exists()) { + if (path != null) { try { - Element root = xf.rootFromName(filename); + Element root = xf.rootFromURL(path); DefaultSignalSystem s = new DefaultSignalSystem(name); loadBean(s, root); return s; - } catch (Exception e) { - log.error("Could not parse aspect file \"" + filename + "\" due to: " + e); + } catch (IOException | JDOMException e) { + log.error("Could not parse aspect file \"{}\" due to: {}", path, e); } } //if the file doesn't exist or fails the load from the default location then try the user directory - filename = FileUtil.getUserFilesPath() + "resources" - + File.separator + "signals" - + File.separator + name - + File.separator + "aspects.xml"; - log.debug("load from " + filename); - file = new File(filename); - if (file.exists()) { + path = FileUtil.findURL("signals/" + name + "/aspects.xml", FileUtil.Location.USER, "xml", "resources"); + log.debug("load from {}", path); + if (path != null) { xf = new AspectFile(); try { - Element root = xf.rootFromName(filename); + Element root = xf.rootFromURL(path); DefaultSignalSystem s = new DefaultSignalSystem(name); loadBean(s, root); return s; - } catch (Exception e) { - log.error("Could not parse aspect file \"" + filename + "\" due to: " + e); + } catch (IOException | JDOMException e) { + log.error("Could not parse aspect file \"{}\" due to: {}", path, e); } } @@ -189,9 +184,7 @@ // add all other sub-elements as key/value pairs for (int i = 0; i < l.size(); i++) { String name = l.get(i).getChild("name").getText(); - if (log.isDebugEnabled()) { - log.debug("aspect name " + name); - } + log.debug("aspect name {}", name); List<Element> c = l.get(i).getChildren(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |