From 382c54a0d052c8975b57c995ef83bc8934bde242 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Fri, 14 Sep 2012 13:09:58 +1200 Subject: altosui: remove un-used imports Signed-off-by: Mike Beattie --- altosui/AltosSiteMapCache.java | 8 -------- 1 file changed, 8 deletions(-) (limited to 'altosui/AltosSiteMapCache.java') diff --git a/altosui/AltosSiteMapCache.java b/altosui/AltosSiteMapCache.java index f729a298..617ed4a9 100644 --- a/altosui/AltosSiteMapCache.java +++ b/altosui/AltosSiteMapCache.java @@ -17,19 +17,11 @@ package altosui; -import java.awt.*; -import java.awt.image.*; -import java.awt.event.*; import javax.swing.*; import javax.imageio.ImageIO; -import javax.swing.table.*; import java.io.*; -import java.util.*; -import java.text.*; -import java.util.prefs.*; import java.net.URL; import java.net.URLConnection; -import org.altusmetrum.AltosLib.*; public class AltosSiteMapCache extends JLabel { public static boolean fetchMap(File file, String url) { -- cgit v1.2.3 From a03aaaca60ccb4b44595e5e1c1047d07d8b6d60f Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Tue, 16 Apr 2013 17:33:42 -0700 Subject: altosui: Handle broken network in map tile loading Handle missing pngfiles in AltosSetMapCache by checking ImageIO.read for null return. Do incremental map tile downloading asynchronously so that the UI doesn't lock up when the network is slow Signed-off-by: Keith Packard --- altosui/AltosSiteMap.java | 16 ++++++++++++---- altosui/AltosSiteMapCache.java | 10 +++++++++- 2 files changed, 21 insertions(+), 5 deletions(-) (limited to 'altosui/AltosSiteMapCache.java') diff --git a/altosui/AltosSiteMap.java b/altosui/AltosSiteMap.java index 5bf02e54..23085f3e 100644 --- a/altosui/AltosSiteMap.java +++ b/altosui/AltosSiteMap.java @@ -220,6 +220,16 @@ public class AltosSiteMap extends JScrollPane implements AltosFlightDisplay { return pngfile.toString(); } + public void initAndFinishMapAsync (final AltosSiteMapTile tile, final Point offset) { + Thread thread = new Thread() { + public void run() { + initMap(offset); + finishTileLater(tile, offset); + } + }; + thread.start(); + } + public void setBaseLocation(double lat, double lng) { for (Point k : mapTiles.keySet()) { AltosSiteMapTile tile = mapTiles.get(k); @@ -308,8 +318,7 @@ public class AltosSiteMap extends JScrollPane implements AltosFlightDisplay { AltosSiteMapTile tile = createTile(offset); tile.show(state, listener_state, lref, ref); - initMap(offset); - finishTileLater(tile, offset); + initAndFinishMapAsync(tile, offset); } scrollRocketToVisible(pt); @@ -370,8 +379,7 @@ public class AltosSiteMap extends JScrollPane implements AltosFlightDisplay { if (mapTiles.containsKey(offset)) continue; AltosSiteMapTile tile = createTile(offset); - initMap(offset); - finishTileLater(tile, offset); + initAndFinishMapAsync(tile, offset); } } } diff --git a/altosui/AltosSiteMapCache.java b/altosui/AltosSiteMapCache.java index 617ed4a9..40c8ff6b 100644 --- a/altosui/AltosSiteMapCache.java +++ b/altosui/AltosSiteMapCache.java @@ -19,6 +19,7 @@ package altosui; import javax.swing.*; import javax.imageio.ImageIO; +import java.awt.image.*; import java.io.*; import java.net.URL; import java.net.URLConnection; @@ -87,7 +88,14 @@ public class AltosSiteMapCache extends JLabel { } try { - return new ImageIcon(ImageIO.read(pngfile)); + BufferedImage img; + + img = ImageIO.read(pngfile); + if (img == null) { + System.out.printf("# Can't read pngfile %s\n", pngfile); + return null; + } + return new ImageIcon(img); } catch (IOException e) { System.out.printf("# IO error trying to load %s\n", pngfile); return null; -- cgit v1.2.3