diff options
| -rw-r--r-- | altosui/AltosSiteMap.java | 16 | ||||
| -rw-r--r-- | altosui/AltosSiteMapCache.java | 10 | 
2 files changed, 21 insertions, 5 deletions
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;  | 
