From 3e429f382382962134143c36f68003fcae03e527 Mon Sep 17 00:00:00 2001
From: Michael Zangl <michael.zangl@student.kit.edu>
Date: Wed, 1 Jul 2015 16:41:13 +0200
Subject: [PATCH 09/11] Move creation of the MapView children to new method.

---
 src/org/openstreetmap/josm/gui/MapView.java | 29 +++++++++++++++++++++--------
 1 file changed, 21 insertions(+), 8 deletions(-)

diff --git a/src/org/openstreetmap/josm/gui/MapView.java b/src/org/openstreetmap/josm/gui/MapView.java
index b2129bc..77613b4 100644
--- a/src/org/openstreetmap/josm/gui/MapView.java
+++ b/src/org/openstreetmap/josm/gui/MapView.java
@@ -22,6 +22,7 @@ import java.awt.image.BufferedImage;
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.LinkedHashSet;
@@ -34,6 +35,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
 import javax.swing.AbstractButton;
 import javax.swing.ActionMap;
 import javax.swing.InputMap;
+import javax.swing.JComponent;
 import javax.swing.JFrame;
 import javax.swing.JPanel;
 
@@ -298,14 +300,9 @@ implements PropertyChangeListener, PreferenceChangedListener, OsmDataLayer.Layer
             @Override public void componentResized(ComponentEvent e) {
                 removeComponentListener(this);
 
-                MapSlider zoomSlider = new MapSlider(MapView.this);
-                add(zoomSlider);
-                zoomSlider.setBounds(3, 0, 114, 30);
-                zoomSlider.setFocusTraversalKeysEnabled(!unregisterTab);
-
-                MapScaler scaler = new MapScaler(MapView.this);
-                add(scaler);
-                scaler.setLocation(10, 30);
+                for (JComponent c : getMapNavigationComponents(MapView.this)) {
+                    MapView.this.add(c);
+                }
 
                 mapMover = new MapMover(MapView.this, contentPane);
             }
@@ -339,6 +336,22 @@ implements PropertyChangeListener, PreferenceChangedListener, OsmDataLayer.Layer
         }
     }
 
+    /**
+     * Adds the map navigation components to a
+     * @param forMapView The map view to get the components for.
+     * @return A list containing the correctly positioned map navigation components.
+     */
+    public static List<? extends JComponent> getMapNavigationComponents(MapView forMapView) {
+        MapSlider zoomSlider = new MapSlider(forMapView);
+        zoomSlider.setBounds(3, 0, 114, 30);
+        zoomSlider.setFocusTraversalKeysEnabled(Shortcut.findShortcut(KeyEvent.VK_TAB, 0) == null);
+
+        MapScaler scaler = new MapScaler(forMapView);
+        scaler.setLocation(10,30);
+
+        return Arrays.asList(zoomSlider, scaler);
+    }
+
     // remebered geometry of the component
     private Dimension oldSize = null;
     private Point oldLoc = null;
-- 
1.9.1

