Changeset 16683 in osm for applications/editors/josm


Ignore:
Timestamp:
2009-07-25T10:49:12+02:00 (15 years ago)
Author:
jttt
Message:

Fix NPE in paint method when data layer was recently removed

Location:
applications/editors/josm/plugins/routes
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RouteLayer.java

    r16594 r16683  
    1111
    1212import org.openstreetmap.josm.Main;
     13import org.openstreetmap.josm.data.osm.DataSet;
    1314import org.openstreetmap.josm.data.osm.Relation;
    1415import org.openstreetmap.josm.data.osm.RelationMember;
     
    3031        private final PathBuilder pathBuilder = new PathBuilder();
    3132        private final List<RouteDefinition> routes = new ArrayList<RouteDefinition>();
    32        
     33
    3334        public RouteLayer(RoutesXMLLayer xmlLayer) {
    3435                super(xmlLayer.getName());
    35                
     36
    3637                int index = 0;
    37                 for (RoutesXMLRoute route:xmlLayer.getRoute()) {                       
     38                for (RoutesXMLRoute route:xmlLayer.getRoute()) {
    3839                        if (route.isEnabled()) {
    3940                                Color color = ColorHelper.html2color(route.getColor());
     
    4546                        }
    4647                }
    47                
     48
    4849                if ("wide".equals(Main.pref.get("routes.painter"))) {
    4950                        pathPainter = new WideLinePainter(this);
     
    8081        @Override
    8182        public void mergeFrom(Layer from) {
    82 
     83                // Merging is not supported
    8384        }
    8485
     
    8990                                pathBuilder.addWay(way, route);
    9091                        }
    91                 }               
     92                }
    9293        }
    9394
     
    9596        public void paint(Graphics g, MapView mv) {
    9697
     98                DataSet dataset = Main.main.getCurrentDataSet();
     99
     100                if (dataset == null) {
     101                        return;
     102                }
     103
    97104                pathBuilder.clear();
    98105
    99                 for (Relation relation:Main.main.getCurrentDataSet().relations) {
     106                for (Relation relation:dataset.relations) {
    100107                        for (RouteDefinition route:routes) {
    101108                                if (route.matches(relation)) {
    102109                                        addRelation(relation, route);
    103110                                }
    104                         }                       
     111                        }
    105112                }
    106113
    107                 for (Way way:Main.main.getCurrentDataSet().ways) {
     114                for (Way way:dataset.ways) {
    108115                        for (RouteDefinition route:routes) {
    109116                                if (route.matches(way)) {
     
    122129
    123130        }
    124        
     131
    125132        public List<RouteDefinition> getRoutes() {
    126133                return routes;
Note: See TracChangeset for help on using the changeset viewer.