Ticket #2046: zoomtodownload.patch

File zoomtodownload.patch, 2.2 KB (added by detlef.reichl@…, 17 years ago)
  • josm

    diff -ur --exclude='*.svn*' josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java josm dev/src/org/openstreetmap/josm/actions/AutoScaleAction.java
    old new  
    1111import javax.swing.JOptionPane;
    1212
    1313import org.openstreetmap.josm.Main;
     14import org.openstreetmap.josm.data.coor.LatLon;
    1415import org.openstreetmap.josm.data.osm.OsmPrimitive;
    1516import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
    1617import org.openstreetmap.josm.gui.layer.Layer;
     
    2223 */
    2324public class AutoScaleAction extends JosmAction {
    2425
    25     public static final String[] modes = { marktr("data"), marktr("layer"), marktr("selection"), marktr("conflict") };
     26    public static final String[] modes = { marktr("data"), marktr("layer"), marktr("selection"), marktr("conflict"), marktr("download") };
    2627    private final String mode;
    2728
    2829    private static int getModeShortcut(String mode) {
     
    4041        if (mode.equals("conflict")) {
    4142            shortcut = KeyEvent.VK_4;
    4243        }
     44        if (mode.equals("download")) {
     45            shortcut = KeyEvent.VK_5;
     46        }
    4347
    4448        return shortcut;
    4549    }
     
    8488            // in most other cases as well.
    8589            v.enlargeBoundingBox();
    8690        }
     91        else if (mode.equals("download")) {
     92            if (Main.pref.hasKey("osm-download.bounds")) {
     93                try {
     94                    String bounds[] = Main.pref.get("osm-download.bounds").split(";");
     95                    double minlat = Double.parseDouble(bounds[0]);
     96                    double minlon = Double.parseDouble(bounds[1]);
     97                    double maxlat = Double.parseDouble(bounds[2]);
     98                    double maxlon = Double.parseDouble(bounds[3]);
     99                   
     100                    v.visit(Main.proj.latlon2eastNorth(new LatLon(minlat, minlon)));
     101                    v.visit(Main.proj.latlon2eastNorth(new LatLon(maxlat, maxlon)));
     102                }
     103                catch (Exception e) {
     104                    e.printStackTrace();
     105                }
     106            }
     107        }
    87108        return v;
    88109    }
    89110}