Ignore:
Timestamp:
2013-05-12T17:45:58+02:00 (12 years ago)
Author:
donvip
Message:

[josm_routing] Fix a bunch of problems and NPEs (fix #josm5132 and #josm8257)

Location:
applications/editors/josm/plugins/routing/src/com/innovant/josm/plugin/routing
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/routing/src/com/innovant/josm/plugin/routing/RoutingLayer.java

    r27760 r29586  
    275275                if(routingModel != null) {
    276276                        if(routingModel.routingGraph != null && routingModel.routingGraph.getGraph() != null) {
    277                         Color color2 = ColorHelper.html2color("#00ff00");               /* just green for now  */
    278277                        Set<OsmEdge> graphEdges =  routingModel.routingGraph.getGraph().edgeSet();
    279                         OsmEdge firstedge = (OsmEdge) graphEdges.toArray()[0];
    280                         Point from = mv.getPoint(firstedge.fromEastNorth());
    281                         g.drawRect(from.x-4, from.y+4, from.x+4, from.y-4);
    282                         for(OsmEdge edge : graphEdges) {
    283                                 drawGraph(g, mv, edge, color2, width);
     278                        if (!graphEdges.isEmpty()) {
     279                        Color color2 = ColorHelper.html2color("#00ff00");               /* just green for now  */
     280                                OsmEdge firstedge = (OsmEdge) graphEdges.toArray()[0];
     281                                Point from = mv.getPoint(firstedge.fromEastNorth());
     282                                g.drawRect(from.x-4, from.y+4, from.x+4, from.y-4);
     283                                for(OsmEdge edge : graphEdges) {
     284                                        drawGraph(g, mv, edge, color2, width);
     285                                }
    284286                        }
    285287                     }
  • applications/editors/josm/plugins/routing/src/com/innovant/josm/plugin/routing/RoutingPlugin.java

    r29525 r29586  
    175175        public void addLayer() {
    176176                OsmDataLayer osmLayer = Main.map.mapView.getEditLayer();
    177                 RoutingLayer layer = new RoutingLayer(tr("Routing") + " [" + osmLayer.getName() + "]", osmLayer);
    178                 layers.add(layer);
    179                 Main.main.addLayer(layer);
     177                if (osmLayer != null) {
     178                        RoutingLayer layer = new RoutingLayer(tr("Routing") + " [" + osmLayer.getName() + "]", osmLayer);
     179                        layers.add(layer);
     180                        Main.main.addLayer(layer);
     181                }
    180182        }
    181183
  • applications/editors/josm/plugins/routing/src/com/innovant/josm/plugin/routing/actions/AddRouteNodeAction.java

    r27288 r29586  
    3737import org.openstreetmap.josm.data.osm.Node;
    3838import org.openstreetmap.josm.gui.MapFrame;
     39import org.openstreetmap.josm.gui.layer.Layer;
    3940import org.openstreetmap.josm.tools.ImageProvider;
    40 
    41 import org.openstreetmap.josm.gui.layer.Layer;
    4241
    4342import com.innovant.josm.plugin.routing.RoutingLayer;
    4443import com.innovant.josm.plugin.routing.RoutingPlugin;
    45 import com.innovant.josm.plugin.routing.gui.RoutingDialog;
    4644
    4745/**
     
    5351 */
    5452public class AddRouteNodeAction extends MapMode {
    55     /**
    56      * Serial.
    57      */
    58     private static final long serialVersionUID = 1L;
     53
    5954    /**
    6055     * Logger.
    6156     */
    6257    static Logger logger = Logger.getLogger(AddRouteNodeAction.class);
    63     /**
    64      * Routing Dialog.
    65      */
    66     private RoutingDialog routingDialog;
    6758
    6859    /**
     
    7566                tr("Click to add destination."),
    7667                mapFrame, ImageProvider.getCursor("crosshair", null));
    77         this.routingDialog = RoutingPlugin.getInstance().getRoutingDialog();
    7868    }
    7969
     
    10292                logger.debug("selected node " + node);
    10393                layer.getRoutingModel().addNode(node);
    104                 routingDialog.addNode(node);
     94                RoutingPlugin.getInstance().getRoutingDialog().addNode(node);
    10595            }
    10696        }
  • applications/editors/josm/plugins/routing/src/com/innovant/josm/plugin/routing/actions/MoveRouteNodeAction.java

    r27288 r29586  
    5656 */
    5757public class MoveRouteNodeAction extends MapMode {
    58     /**
    59      * Serial.
    60      */
    61     private static final long serialVersionUID = 1L;
    6258
    6359    /**
     
    7066     */
    7167    static Logger logger = Logger.getLogger(RoutingLayer.class);
    72 
    73     /**
    74      * Routing Dialog.
    75      */
    76     private RoutingDialog routingDialog;
    7768
    7869    /**
     
    9081                tr("Click and drag to move destination"),
    9182                mapFrame, ImageProvider.getCursor("normal", "move"));
    92         this.routingDialog = RoutingPlugin.getInstance().getRoutingDialog();
    9383    }
    9484
     
    141131            RoutingLayer layer = (RoutingLayer)Main.map.mapView.getActiveLayer();
    142132            RoutingModel routingModel = layer.getRoutingModel();
     133            RoutingDialog routingDialog = RoutingPlugin.getInstance().getRoutingDialog();
    143134            // Search for nearest highway node
    144135            Node node = null;
  • applications/editors/josm/plugins/routing/src/com/innovant/josm/plugin/routing/actions/RemoveRouteNodeAction.java

    r27288 r29586  
    3838import org.openstreetmap.josm.data.osm.Node;
    3939import org.openstreetmap.josm.gui.MapFrame;
     40import org.openstreetmap.josm.gui.layer.Layer;
    4041import org.openstreetmap.josm.tools.ImageProvider;
    41 import org.openstreetmap.josm.gui.layer.Layer;
    4242
    4343import com.innovant.josm.plugin.routing.RoutingLayer;
    4444import com.innovant.josm.plugin.routing.RoutingModel;
    4545import com.innovant.josm.plugin.routing.RoutingPlugin;
    46 import com.innovant.josm.plugin.routing.gui.RoutingDialog;
    4746
    4847/**
     
    5453 */
    5554public class RemoveRouteNodeAction extends MapMode {
    56     /**
    57      * Serial.
    58      */
    59     private static final long serialVersionUID = 1L;
    6055
    6156    /**
     
    6863     */
    6964    static Logger logger = Logger.getLogger(RoutingLayer.class);
    70     /**
    71      * Routing Dialog.
    72      */
    73     private RoutingDialog routingDialog;
    7465
    7566    public RemoveRouteNodeAction(MapFrame mapFrame) {
     
    7869                tr("Click to remove destination"),
    7970                mapFrame, ImageProvider.getCursor("normal", "delete"));
    80         this.routingDialog = RoutingPlugin.getInstance().getRoutingDialog();
    8171    }
    8272
     
    114104                    logger.debug("Removing node " + nl.get(index));
    115105                    routingModel.removeNode(index);
    116                     routingDialog.removeNode(index);
     106                    RoutingPlugin.getInstance().getRoutingDialog().removeNode(index);
    117107                    Main.map.repaint();
    118108                } else {
Note: See TracChangeset for help on using the changeset viewer.