X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altosuilib%2FAltosUIMapNew.java;h=5f63a3c226f5871dfd8656a2d177052b695226b5;hb=4a33336b8f468c5b0f2e14c0ee0242c9a24a8b90;hp=05f47b53d552d292b414048d0ab46917356ebf7c;hpb=ff01fb7275973cdbfd976d3b4e638c6235108121;p=fw%2Faltos diff --git a/altosuilib/AltosUIMapNew.java b/altosuilib/AltosUIMapNew.java index 05f47b53..5f63a3c2 100644 --- a/altosuilib/AltosUIMapNew.java +++ b/altosuilib/AltosUIMapNew.java @@ -140,17 +140,23 @@ public class AltosUIMapNew extends JComponent implements AltosFlightDisplay, Alt int zoom_change = e.getWheelRotation(); map.notice_user_input(); - AltosLatLon mouse_lat_lon = map.transform.screen_lat_lon(new AltosPointInt(e.getPoint().x, e.getPoint().y)); + AltosLatLon mouse_lat_lon = null; + + if (map.transform != null) + mouse_lat_lon = map.transform.screen_lat_lon(new AltosPointInt(e.getPoint().x, e.getPoint().y)); + map.set_zoom(map.get_zoom() - zoom_change); - AltosPointDouble new_mouse = map.transform.screen(mouse_lat_lon); + if (mouse_lat_lon != null) { + AltosPointDouble new_mouse = map.transform.screen(mouse_lat_lon); - int dx = getWidth()/2 - e.getPoint().x; - int dy = getHeight()/2 - e.getPoint().y; + int dx = getWidth()/2 - e.getPoint().x; + int dy = getHeight()/2 - e.getPoint().y; - AltosLatLon new_centre = map.transform.screen_lat_lon(new AltosPointInt((int) new_mouse.x + dx, (int) new_mouse.y + dy)); + AltosLatLon new_centre = map.transform.screen_lat_lon(new AltosPointInt((int) new_mouse.x + dx, (int) new_mouse.y + dy)); - map.centre(new_centre); + map.centre(new_centre); + } } /* ComponentListener methods */ @@ -369,6 +375,10 @@ public class AltosUIMapNew extends JComponent implements AltosFlightDisplay, Alt zoom_label.setText(label); } + public void debug(String format, Object ... arguments) { + System.out.printf(format, arguments); + } + /* AltosFlightDisplay interface */ public void set_font() {