Changeset 33532 in osm


Ignore:
Timestamp:
2017-08-26T02:18:43+02:00 (7 years ago)
Author:
donvip
Message:

update to JOSM 12662

Location:
applications/editors/josm/plugins/routes
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/routes/build.xml

    r32826 r33532  
    22<project name="routes" default="dist" basedir=".">
    33    <property name="commit.message" value="Changed the constructor signature of the plugin main class"/>
    4     <property name="plugin.main.version" value="10827"/>
     4    <property name="plugin.main.version" value="12662"/>
    55    <property name="josm" location="../../core/dist/josm-custom.jar"/>
    66    <property name="plugin.dist.dir" value="../../dist"/>
  • applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RouteDefinition.java

    r31586 r33532  
    33import java.awt.Color;
    44
    5 import org.openstreetmap.josm.actions.search.SearchCompiler;
    6 import org.openstreetmap.josm.actions.search.SearchCompiler.Match;
    7 import org.openstreetmap.josm.actions.search.SearchCompiler.ParseError;
    85import org.openstreetmap.josm.data.osm.OsmPrimitive;
     6import org.openstreetmap.josm.data.osm.search.SearchParseError;
     7import org.openstreetmap.josm.data.osm.search.SearchCompiler;
     8import org.openstreetmap.josm.data.osm.search.SearchCompiler.Match;
    99
    1010public class RouteDefinition {
     
    2121        try {
    2222            match = SearchCompiler.compile(expression);
    23         } catch (ParseError e) {
     23        } catch (SearchParseError e) {
    2424            match = new SearchCompiler.Never();
    2525            e.printStackTrace();
  • applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RouteLayer.java

    r33290 r33532  
    2121import org.openstreetmap.josm.data.osm.event.DatasetEventManager.FireMode;
    2222import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
     23import org.openstreetmap.josm.gui.MainApplication;
    2324import org.openstreetmap.josm.gui.MapView;
    2425import org.openstreetmap.josm.gui.layer.Layer;
     
    3334public class RouteLayer extends Layer implements DataSetListenerAdapter.Listener {
    3435
    35     private final PathPainter pathPainter;
    36     private final PathBuilder pathBuilder = new PathBuilder();
    37     private final List<RouteDefinition> routes = new ArrayList<>();
    38     private volatile boolean datasetChanged = true;
     36        private final PathPainter pathPainter;
     37        private final PathBuilder pathBuilder = new PathBuilder();
     38        private final List<RouteDefinition> routes = new ArrayList<>();
     39        private volatile boolean datasetChanged = true;
    3940
    40     public RouteLayer(RoutesXMLLayer xmlLayer) {
    41         super(xmlLayer.getName());
     41        public RouteLayer(RoutesXMLLayer xmlLayer) {
     42                super(xmlLayer.getName());
    4243
    43         int index = 0;
    44         for (RoutesXMLRoute route:xmlLayer.getRoute()) {
    45             if (route.isEnabled()) {
    46                 Color color = ColorHelper.html2color(route.getColor());
    47                 if (color == null) {
    48                     color = Color.RED;
    49                     System.err.printf("Routes plugin - unable to convert color (%s)\n", route.getColor());
    50                 }
    51                 routes.add(new RouteDefinition(index++, color, route.getPattern()));
    52             }
    53         }
     44                int index = 0;
     45                for (RoutesXMLRoute route:xmlLayer.getRoute()) {
     46                        if (route.isEnabled()) {
     47                                Color color = ColorHelper.html2color(route.getColor());
     48                                if (color == null) {
     49                                        color = Color.RED;
     50                                        System.err.printf("Routes plugin - unable to convert color (%s)\n", route.getColor());
     51                                }
     52                                routes.add(new RouteDefinition(index++, color, route.getPattern()));
     53                        }
     54                }
    5455
    55         if ("wide".equals(Main.pref.get("routes.painter"))) {
    56             pathPainter = new WideLinePainter(this);
    57         } else {
    58             pathPainter = new NarrowLinePainter(this);
    59         }
     56                if ("wide".equals(Main.pref.get("routes.painter"))) {
     57                        pathPainter = new WideLinePainter(this);
     58                } else {
     59                        pathPainter = new NarrowLinePainter(this);
     60                }
    6061
    61         DatasetEventManager.getInstance().addDatasetListener(new DataSetListenerAdapter(this), FireMode.IMMEDIATELY);
    62     }
     62                DatasetEventManager.getInstance().addDatasetListener(new DataSetListenerAdapter(this), FireMode.IMMEDIATELY);
     63        }
    6364
    64     @Override
    65     public Icon getIcon() {
    66         return ImageProvider.get("layer", "osmdata_small");
    67     }
     65        @Override
     66        public Icon getIcon() {
     67                return ImageProvider.get("layer", "osmdata_small");
     68        }
    6869
    69     @Override
    70     public Object getInfoComponent() {
    71         return null;
    72     }
     70        @Override
     71        public Object getInfoComponent() {
     72                return null;
     73        }
    7374
    74     @Override
    75     public Action[] getMenuEntries() {
    76         return new Action[0];
    77     }
     75        @Override
     76        public Action[] getMenuEntries() {
     77                return new Action[0];
     78        }
    7879
    79     @Override
    80     public String getToolTipText() {
    81         return "Hiking routes";
    82     }
     80        @Override
     81        public String getToolTipText() {
     82                return "Hiking routes";
     83        }
    8384
    84     @Override
    85     public boolean isMergable(Layer other) {
    86         return false;
    87     }
     85        @Override
     86        public boolean isMergable(Layer other) {
     87                return false;
     88        }
    8889
    89     @Override
    90     public void mergeFrom(Layer from) {
    91         // Merging is not supported
    92     }
     90        @Override
     91        public void mergeFrom(Layer from) {
     92                // Merging is not supported
     93        }
    9394
    94     private void addRelation(Relation relation, RouteDefinition route) {
    95         for (RelationMember member:relation.getMembers()) {
    96             if (member.getMember() instanceof Way) {
    97                 Way way = (Way)member.getMember();
    98                 pathBuilder.addWay(way, route);
    99             }
    100         }
    101     }
     95        private void addRelation(Relation relation, RouteDefinition route) {
     96                for (RelationMember member:relation.getMembers()) {
     97                        if (member.getMember() instanceof Way) {
     98                                Way way = (Way)member.getMember();
     99                                pathBuilder.addWay(way, route);
     100                        }
     101                }
     102        }
    102103
    103     @Override
    104     public void paint(Graphics2D g, MapView mv, Bounds bounds) {
     104        @Override
     105        public void paint(Graphics2D g, MapView mv, Bounds bounds) {
    105106
    106         DataSet dataset = Main.getLayerManager().getEditDataSet();
     107                DataSet dataset = MainApplication.getLayerManager().getEditDataSet();
    107108
    108         if (dataset == null) {
    109             return;
    110         }
     109                if (dataset == null) {
     110                        return;
     111                }
    111112
    112         if (datasetChanged) {
    113             datasetChanged = false;
    114             pathBuilder.clear();
     113                if (datasetChanged) {
     114                        datasetChanged = false;
     115                        pathBuilder.clear();
    115116
    116             for (Relation relation:dataset.getRelations()) {
    117                 for (RouteDefinition route:routes) {
    118                     if (route.matches(relation)) {
    119                         addRelation(relation, route);
    120                     }
    121                 }
    122             }
     117                        for (Relation relation:dataset.getRelations()) {
     118                                for (RouteDefinition route:routes) {
     119                                        if (route.matches(relation)) {
     120                                                addRelation(relation, route);
     121                                        }
     122                                }
     123                        }
    123124
    124             for (Way way:dataset.getWays()) {
    125                 for (RouteDefinition route:routes) {
    126                     if (route.matches(way)) {
    127                         pathBuilder.addWay(way, route);
    128                     }
    129                 }
    130             }
    131         }
     125                        for (Way way:dataset.getWays()) {
     126                                for (RouteDefinition route:routes) {
     127                                        if (route.matches(way)) {
     128                                                pathBuilder.addWay(way, route);
     129                                        }
     130                                }
     131                        }
     132                }
    132133
    133         Stroke stroke = g.getStroke();
    134         Color color   = g.getColor();
    135         for (ConvertedWay way:pathBuilder.getConvertedWays()) {
    136             pathPainter.drawWay(way, mv, g);
    137         }
    138         g.setStroke(stroke);
    139         g.setColor(color);
     134                Stroke stroke = g.getStroke();
     135                Color color   = g.getColor();
     136                for (ConvertedWay way:pathBuilder.getConvertedWays()) {
     137                        pathPainter.drawWay(way, mv, g);
     138                }
     139                g.setStroke(stroke);
     140                g.setColor(color);
    140141
    141     }
     142        }
    142143
    143     @Override
    144     public void visitBoundingBox(BoundingXYVisitor v) {
     144        @Override
     145        public void visitBoundingBox(BoundingXYVisitor v) {
    145146
    146     }
     147        }
    147148
    148     public List<RouteDefinition> getRoutes() {
    149         return routes;
    150     }
     149        public List<RouteDefinition> getRoutes() {
     150                return routes;
     151        }
    151152
    152     public void processDatasetEvent(AbstractDatasetChangedEvent event) {
    153         datasetChanged = true;
    154     }
     153        @Override
     154        public void processDatasetEvent(AbstractDatasetChangedEvent event) {
     155                datasetChanged = true;
     156        }
    155157
    156     @Override
    157     public synchronized void destroy() {
    158         /* layer is reused, don't destroy it at all */
    159     }
     158        @Override
     159        public synchronized void destroy() {
     160                /* layer is reused, don't destroy it at all */
     161        }
    160162}
  • applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RoutesPlugin.java

    r33292 r33532  
    1414import javax.xml.bind.Unmarshaller;
    1515
    16 import org.openstreetmap.josm.Main;
     16import org.openstreetmap.josm.gui.MainApplication;
    1717import org.openstreetmap.josm.gui.layer.Layer;
    1818import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent;
     
    2525import org.openstreetmap.josm.plugins.routes.xml.Routes;
    2626import org.openstreetmap.josm.plugins.routes.xml.RoutesXMLLayer;
     27import org.openstreetmap.josm.tools.Logging;
    2728
    2829public class RoutesPlugin extends Plugin implements LayerChangeListener {
    2930
    30     private final List<RouteLayer> routeLayers = new ArrayList<>();
     31        private final List<RouteLayer> routeLayers = new ArrayList<>();
    3132
    32     public RoutesPlugin(PluginInformation info) {
    33         super(info);
    34         Main.getLayerManager().addLayerChangeListener(this);
     33        public RoutesPlugin(PluginInformation info) {
     34                super(info);
     35                MainApplication.getLayerManager().addLayerChangeListener(this);
    3536
    36         File routesFile = new File(getPluginDir() + File.separator + "routes.xml");
    37         if (!routesFile.exists()) {
    38             Main.info("File with route definitions doesn't exist, using default");
     37                File routesFile = new File(getPluginDir() + File.separator + "routes.xml");
     38                if (!routesFile.exists()) {
     39                        Logging.info("File with route definitions doesn't exist, using default");
    3940
    40             try {
    41                 routesFile.getParentFile().mkdir();
    42                 try (
    43                         OutputStream outputStream = new FileOutputStream(routesFile);
    44                         InputStream inputStream = Routes.class.getResourceAsStream("routes.xml");
    45                         ) {
    46                     byte[] b = new byte[512];
    47                     int read;
    48                     while ((read = inputStream.read(b)) != -1) {
    49                         outputStream.write(b, 0, read);
    50                     }
    51                 }
    52             } catch (IOException e) {
    53                 Main.error(e);
    54             }
    55         }
     41                        try {
     42                                routesFile.getParentFile().mkdir();
     43                                try (
     44                                                OutputStream outputStream = new FileOutputStream(routesFile);
     45                                                InputStream inputStream = Routes.class.getResourceAsStream("routes.xml");
     46                                                ) {
     47                                        byte[] b = new byte[512];
     48                                        int read;
     49                                        while ((read = inputStream.read(b)) != -1) {
     50                                                outputStream.write(b, 0, read);
     51                                        }
     52                                }
     53                        } catch (IOException e) {
     54                                Logging.error(e);
     55                        }
     56                }
    5657
    57         try {
    58             JAXBContext context = JAXBContext.newInstance(
    59                     Routes.class.getPackage().getName(), Routes.class.getClassLoader());
    60             Unmarshaller unmarshaller = context.createUnmarshaller();
    61             Routes routes = (Routes)unmarshaller.unmarshal(
    62                     new FileInputStream(getPluginDir() + File.separator + "routes.xml"));
    63             for (RoutesXMLLayer layer:routes.getLayer()) {
    64                 if (layer.isEnabled()) {
    65                     routeLayers.add(new RouteLayer(layer));
    66                 }
    67             }
    68         } catch (Exception e) {
    69             e.printStackTrace();
    70         }
    71     }
     58                try {
     59                        JAXBContext context = JAXBContext.newInstance(
     60                                        Routes.class.getPackage().getName(), Routes.class.getClassLoader());
     61                        Unmarshaller unmarshaller = context.createUnmarshaller();
     62                        Routes routes = (Routes)unmarshaller.unmarshal(
     63                                        new FileInputStream(getPluginDir() + File.separator + "routes.xml"));
     64                        for (RoutesXMLLayer layer:routes.getLayer()) {
     65                                if (layer.isEnabled()) {
     66                                        routeLayers.add(new RouteLayer(layer));
     67                                }
     68                        }
     69                } catch (Exception e) {
     70                        e.printStackTrace();
     71                }
     72        }
    7273
    73     public void activeLayerChange(Layer oldLayer, Layer newLayer) {
    74         // Do nothing
    75     }
     74        public void activeLayerChange(Layer oldLayer, Layer newLayer) {
     75                // Do nothing
     76        }
    7677
    77     @Override
    78     public void layerAdded(LayerAddEvent e) {
    79         Layer layer = e.getAddedLayer();
    80         if (layer instanceof OsmDataLayer) {
    81             for (RouteLayer routeLayer : routeLayers) {
    82                 if (!e.getSource().containsLayer(routeLayer)) {
    83                     SwingUtilities.invokeLater(() -> {
    84                         e.getSource().addLayer(routeLayer);
    85                     });
    86                 }
    87             }
    88         }
    89     }
     78        @Override
     79        public void layerAdded(LayerAddEvent e) {
     80                Layer layer = e.getAddedLayer();
     81                if (layer instanceof OsmDataLayer) {
     82                        for (RouteLayer routeLayer : routeLayers) {
     83                                if (!e.getSource().containsLayer(routeLayer)) {
     84                                        SwingUtilities.invokeLater(() -> {
     85                                                e.getSource().addLayer(routeLayer);
     86                                        });
     87                                }
     88                        }
     89                }
     90        }
    9091
    91     @Override
    92     public void layerRemoving(LayerRemoveEvent e) {
    93         for (Layer layer : e.getSource().getLayers()) {
    94             if (layer instanceof OsmDataLayer)  {
    95                 return; /* at least one OSM layer left, do nothing */
    96             }
    97         }
    98         if(!e.isLastLayer()) {
    99             SwingUtilities.invokeLater(() -> {
    100                 for (RouteLayer routeLayer : routeLayers) {
    101                     if (e.getSource().containsLayer(routeLayer)) {
    102                         e.getSource().removeLayer(routeLayer);
    103                     }
    104                 }
    105             });
    106         }
    107     }
     92        @Override
     93        public void layerRemoving(LayerRemoveEvent e) {
     94                for (Layer layer : e.getSource().getLayers()) {
     95                        if (layer instanceof OsmDataLayer)  {
     96                                return; /* at least one OSM layer left, do nothing */
     97                        }
     98                }
     99                if(!e.isLastLayer()) {
     100                        SwingUtilities.invokeLater(() -> {
     101                                for (RouteLayer routeLayer : routeLayers) {
     102                                        if (e.getSource().containsLayer(routeLayer)) {
     103                                                e.getSource().removeLayer(routeLayer);
     104                                        }
     105                                }
     106                        });
     107                }
     108        }
    108109
    109     @Override
    110     public void layerOrderChanged(LayerOrderChangeEvent e) {
    111         // Do nothing
    112     }
     110        @Override
     111        public void layerOrderChanged(LayerOrderChangeEvent e) {
     112                // Do nothing
     113        }
    113114}
Note: See TracChangeset for help on using the changeset viewer.