Changeset 33896 in osm for applications/editors/josm
- Timestamp:
 - 2017-11-25T01:46:02+01:00 (8 years ago)
 - Location:
 - applications/editors/josm/plugins/routes
 - Files:
 - 
      
- 2 edited
 
- 
          
  build.xml (modified) (1 diff)
 - 
          
  src/org/openstreetmap/josm/plugins/routes/RoutesPlugin.java (modified) (1 diff)
 
 
Legend:
- Unmodified
 - Added
 - Removed
 
- 
      
applications/editors/josm/plugins/routes/build.xml
r33593 r33896 2 2 <project name="routes" default="dist" basedir="."> 3 3 <property name="commit.message" value="Changed the constructor signature of the plugin main class"/> 4 <property name="plugin.main.version" value="1 2662"/>4 <property name="plugin.main.version" value="13007"/> 5 5 <property name="josm" location="../../core/dist/josm-custom.jar"/> 6 6 <property name="plugin.dist.dir" value="../../dist"/>  - 
      
applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RoutesPlugin.java
r33606 r33896 30 30 public class RoutesPlugin extends Plugin implements LayerChangeListener { 31 31 32 private final List<RouteLayer> routeLayers = new ArrayList<>();32 private final List<RouteLayer> routeLayers = new ArrayList<>(); 33 33 34 public RoutesPlugin(PluginInformation info) {35 super(info);36 MainApplication.getLayerManager().addLayerChangeListener(this);34 public RoutesPlugin(PluginInformation info) { 35 super(info); 36 MainApplication.getLayerManager().addLayerChangeListener(this); 37 37 38 File routesFile = new File(getPluginDir() + File.separator +"routes.xml");39 if (!routesFile.exists()) {40 Logging.info("File with route definitions doesn't exist, using default");38 File routesFile = new File(getPluginDirs().getUserDataDirectory(false), "routes.xml"); 39 if (!routesFile.exists()) { 40 Logging.info("File with route definitions doesn't exist, using default"); 41 41 42 try {43 routesFile.getParentFile().mkdir();44 try (45 OutputStream outputStream = new FileOutputStream(routesFile);46 InputStream inputStream = Routes.class.getResourceAsStream("routes.xml");47 ) {48 byte[] b = new byte[512];49 int read;50 while ((read = inputStream.read(b)) != -1) {51 outputStream.write(b, 0, read);52 }53 }54 } catch (IOException e) {55 Logging.error(e);56 }57 }42 try { 43 routesFile.getParentFile().mkdir(); 44 try ( 45 OutputStream outputStream = new FileOutputStream(routesFile); 46 InputStream inputStream = Routes.class.getResourceAsStream("routes.xml"); 47 ) { 48 byte[] b = new byte[512]; 49 int read; 50 while ((read = inputStream.read(b)) != -1) { 51 outputStream.write(b, 0, read); 52 } 53 } 54 } catch (IOException e) { 55 Logging.error(e); 56 } 57 } 58 58 59 try {60 JAXBContext context = JAXBContext.newInstance(61 Routes.class.getPackage().getName(), Routes.class.getClassLoader());62 Unmarshaller unmarshaller = context.createUnmarshaller();63 Routes routes = (Routes)unmarshaller.unmarshal(64 new FileInputStream(getPluginDir() + File.separator + "routes.xml"));65 for (RoutesXMLLayer layer:routes.getLayer()) {66 if (layer.isEnabled()) {67 routeLayers.add(new RouteLayer(layer));68 }69 }70 } catch (Exception e) {71 e.printStackTrace();72 }73 }59 try { 60 JAXBContext context = JAXBContext.newInstance( 61 Routes.class.getPackage().getName(), Routes.class.getClassLoader()); 62 Unmarshaller unmarshaller = context.createUnmarshaller(); 63 Routes routes = (Routes)unmarshaller.unmarshal( 64 new FileInputStream(getPluginDirs().getUserDataDirectory(false) + File.separator + "routes.xml")); 65 for (RoutesXMLLayer layer:routes.getLayer()) { 66 if (layer.isEnabled()) { 67 routeLayers.add(new RouteLayer(layer)); 68 } 69 } 70 } catch (Exception e) { 71 e.printStackTrace(); 72 } 73 } 74 74 75 public void activeLayerChange(Layer oldLayer, Layer newLayer) {76 // Do nothing77 }75 public void activeLayerChange(Layer oldLayer, Layer newLayer) { 76 // Do nothing 77 } 78 78 79 @Override80 public void layerAdded(LayerAddEvent e) {81 Layer layer = e.getAddedLayer();82 if (layer instanceof OsmDataLayer) {83 LayerManager lm = e.getSource();84 for (RouteLayer routeLayer : routeLayers) {85 if (!lm.containsLayer(routeLayer)) {86 SwingUtilities.invokeLater(() -> {87 if (!lm.containsLayer(routeLayer)) {88 lm.addLayer(routeLayer);89 }90 });91 }92 }93 }94 }79 @Override 80 public void layerAdded(LayerAddEvent e) { 81 Layer layer = e.getAddedLayer(); 82 if (layer instanceof OsmDataLayer) { 83 LayerManager lm = e.getSource(); 84 for (RouteLayer routeLayer : routeLayers) { 85 if (!lm.containsLayer(routeLayer)) { 86 SwingUtilities.invokeLater(() -> { 87 if (!lm.containsLayer(routeLayer)) { 88 lm.addLayer(routeLayer); 89 } 90 }); 91 } 92 } 93 } 94 } 95 95 96 @Override97 public void layerRemoving(LayerRemoveEvent e) {98 for (Layer layer : e.getSource().getLayers()) {99 if (layer instanceof OsmDataLayer) {100 return; /* at least one OSM layer left, do nothing */101 }102 }103 if(!e.isLastLayer()) {104 SwingUtilities.invokeLater(() -> {105 for (RouteLayer routeLayer : routeLayers) {106 if (e.getSource().containsLayer(routeLayer)) {107 e.getSource().removeLayer(routeLayer);108 }109 }110 });111 }112 }96 @Override 97 public void layerRemoving(LayerRemoveEvent e) { 98 for (Layer layer : e.getSource().getLayers()) { 99 if (layer instanceof OsmDataLayer) { 100 return; /* at least one OSM layer left, do nothing */ 101 } 102 } 103 if(!e.isLastLayer()) { 104 SwingUtilities.invokeLater(() -> { 105 for (RouteLayer routeLayer : routeLayers) { 106 if (e.getSource().containsLayer(routeLayer)) { 107 e.getSource().removeLayer(routeLayer); 108 } 109 } 110 }); 111 } 112 } 113 113 114 @Override115 public void layerOrderChanged(LayerOrderChangeEvent e) {116 // Do nothing117 }114 @Override 115 public void layerOrderChanged(LayerOrderChangeEvent e) { 116 // Do nothing 117 } 118 118 }  
  Note:
 See   TracChangeset
 for help on using the changeset viewer.
  