Changeset 33896 in osm for applications/editors/josm/plugins/routes
- Timestamp:
- 2017-11-25T01:46:02+01:00 (7 years ago)
- Location:
- applications/editors/josm/plugins/routes
- Files:
-
- 2 edited
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 32 private final List<RouteLayer> routeLayers = new ArrayList<>(); 33 33 34 35 36 34 public RoutesPlugin(PluginInformation info) { 35 super(info); 36 MainApplication.getLayerManager().addLayerChangeListener(this); 37 37 38 () + File.separator +"routes.xml");39 40 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 43 44 45 46 47 48 49 50 51 52 53 54 55 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 60 61 62 63 64 () + File.separator + "routes.xml"));65 66 67 68 69 70 71 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 76 77 75 public void activeLayerChange(Layer oldLayer, Layer newLayer) { 76 // Do nothing 77 } 78 78 79 80 81 82 83 84 85 86 87 88 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 97 98 99 100 101 102 103 104 105 106 107 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 115 116 117 114 @Override 115 public void layerOrderChanged(LayerOrderChangeEvent e) { 116 // Do nothing 117 } 118 118 }
Note:
See TracChangeset
for help on using the changeset viewer.