### Eclipse Workspace Patch 1.0
#P JOSM
Index: src/org/openstreetmap/josm/gui/download/SlippyMapChooser.java
===================================================================
--- src/org/openstreetmap/josm/gui/download/SlippyMapChooser.java	(revision 1413)
+++ src/org/openstreetmap/josm/gui/download/SlippyMapChooser.java	(working copy)
@@ -10,9 +10,8 @@
 import java.awt.Dimension;
 import java.awt.Graphics;
 import java.awt.Point;
+import java.awt.Rectangle;
 import java.awt.Toolkit;
-import java.awt.event.ComponentEvent;
-import java.awt.event.ComponentListener;
 import java.awt.geom.Point2D;
 import java.util.Vector;
 
@@ -26,13 +25,10 @@
 import org.openstreetmap.gui.jmapviewer.OsmMercator;
 import org.openstreetmap.gui.jmapviewer.OsmTileLoader;
 import org.openstreetmap.gui.jmapviewer.OsmTileSource;
-import org.openstreetmap.gui.jmapviewer.OsmTileSource.CycleMap;
 import org.openstreetmap.gui.jmapviewer.interfaces.MapMarker;
 import org.openstreetmap.gui.jmapviewer.interfaces.TileLoader;
 import org.openstreetmap.gui.jmapviewer.interfaces.TileSource;
 import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.gui.download.DownloadDialog;
-import org.openstreetmap.josm.gui.download.DownloadSelection;
 
 /**
  * JComponent that displays the slippy map tiles
@@ -40,7 +36,7 @@
  * @author Tim Haussmann
  * 
  */
-public class SlippyMapChooser extends JMapViewer implements DownloadSelection, ComponentListener {
+public class SlippyMapChooser extends JMapViewer implements DownloadSelection {
 
     private DownloadDialog iGui;
 
@@ -57,11 +53,11 @@
     // screen size
     private Dimension iScreenSize;
 
-    private TileSource[] sources = { new OsmTileSource.Mapnik(), new OsmTileSource.TilesAtHome(),new OsmTileSource.CycleMap()};
+    private TileSource[] sources = { new OsmTileSource.Mapnik(), new OsmTileSource.TilesAtHome(),
+            new OsmTileSource.CycleMap() };
     TileLoader cachedLoader;
     TileLoader uncachedLoader;
     JPanel slipyyMapTabPanel;
-    boolean firstShown = true;
 
     /**
      * Create the chooser component.
@@ -73,25 +69,26 @@
         setZoomContolsVisible(false);
         setMapMarkerVisible(false);
         setMinimumSize(new Dimension(350, 350 / 2));
+        // We need to set an initial size - this prevents a wrong zoom selection for 
+        // the area before the component has been displayed the first time   
+        setBounds(new Rectangle(getMinimumSize()));
         setFileCacheEnabled(Main.pref.getBoolean("slippy_map_chooser.file_cache", true));
-        setMaxTilesInmemory(Main.pref.getInteger("slippy_map_chooser.max_tiles", 1000));
-        addComponentListener(this);
+        setMaxTilesInMemory(Main.pref.getInteger("slippy_map_chooser.max_tiles", 1000));
 
         String mapStyle = Main.pref.get("slippy_map_chooser.mapstyle", "mapnik");
-        if(mapStyle.equals("osmarender")) {
+        if (mapStyle.equals("osmarender")) {
             iSourceButton.setMapStyle(SourceButton.OSMARENDER);
             this.setTileSource(sources[1]);
-        }else if(mapStyle.equals("cyclemap")){
-        	 iSourceButton.setMapStyle(SourceButton.CYCLEMAP);
-             this.setTileSource(sources[2]);
-        }
-        else {
-            if(!mapStyle.equals("mapnik"))
+        } else if (mapStyle.equals("cyclemap")) {
+            iSourceButton.setMapStyle(SourceButton.CYCLEMAP);
+            this.setTileSource(sources[2]);
+        } else {
+            if (!mapStyle.equals("mapnik"))
                 Main.pref.put("slippy_map_chooser.mapstyle", "mapnik");
         }
     }
 
-    public void setMaxTilesInmemory(int tiles) {
+    public void setMaxTilesInMemory(int tiles) {
         ((MemoryTileCache) getTileCache()).setCacheSize(tiles);
     }
 
@@ -108,10 +105,8 @@
         slipyyMapTabPanel.setLayout(new BorderLayout());
         slipyyMapTabPanel.add(this, BorderLayout.CENTER);
         slipyyMapTabPanel.add(new JLabel((tr("Zoom: Mousewheel or double click.   "
-                + "Move map: Hold right mousebutton and move mouse.   Select: Click."))),
-                BorderLayout.SOUTH);
+                + "Move map: Hold right mousebutton and move mouse.   Select: Click."))), BorderLayout.SOUTH);
         iGui.tabpane.add(slipyyMapTabPanel, tr("Slippy map"));
-        iGui.tabpane.addComponentListener(this);
         new OsmMapControl(this, slipyyMapTabPanel, iSizeButton, iSourceButton);
     }
 
@@ -223,9 +218,8 @@
      */
     public void resizeSlippyMap() {
         if (iScreenSize == null) {
-            Component c =
-                    iGui.getParent().getParent().getParent().getParent().getParent().getParent()
-                            .getParent().getParent().getParent();
+            Component c = iGui.getParent().getParent().getParent().getParent().getParent().getParent().getParent()
+                    .getParent().getParent();
             // remember the initial set screen dimensions
             iDownloadDialogDimension = c.getSize();
             // retrive the size of the display
@@ -233,9 +227,8 @@
         }
 
         // resize
-        Component co =
-                iGui.getParent().getParent().getParent().getParent().getParent().getParent()
-                        .getParent().getParent().getParent();
+        Component co = iGui.getParent().getParent().getParent().getParent().getParent().getParent().getParent()
+                .getParent().getParent();
         Dimension currentDimension = co.getSize();
 
         // enlarge
@@ -265,31 +258,13 @@
         if (mapSource == SourceButton.MAPNIK) {
             this.setTileSource(sources[0]);
             Main.pref.put("slippy_map_chooser.mapstyle", "mapnik");
-        }else if (mapSource == SourceButton.CYCLEMAP) {
+        } else if (mapSource == SourceButton.CYCLEMAP) {
             this.setTileSource(sources[2]);
             Main.pref.put("slippy_map_chooser.mapstyle", "cyclemap");
-        }else {
+        } else {
             this.setTileSource(sources[1]);
             Main.pref.put("slippy_map_chooser.mapstyle", "osmarender");
         }
     }
 
-    public void componentHidden(ComponentEvent e) {
-    }
-
-    public void componentMoved(ComponentEvent e) {
-    }
-
-    public void componentShown(ComponentEvent e) {
-    }
-
-    public void componentResized(ComponentEvent e) {
-        if (!this.equals(e.getSource()) || getHeight() == 0 || getWidth() == 0)
-            return;
-        firstShown = false;
-        // The bounding box has to be set after SlippyMapChooser's size has been
-        // finally set - otherwise the zoom level will be totally wrong (too wide)
-        boundingBoxChanged(iGui);
-    }
-
 }
