Index: trunk/src/org/openstreetmap/josm/command/SelectCommand.java
===================================================================
--- trunk/src/org/openstreetmap/josm/command/SelectCommand.java	(revision 10363)
+++ trunk/src/org/openstreetmap/josm/command/SelectCommand.java	(revision 10364)
@@ -38,11 +38,11 @@
     @Override
     public void undoCommand() {
-        Main.map.mapView.getEditLayer().data.setSelected(oldSelection);
+        Main.getLayerManager().getEditLayer().data.setSelected(oldSelection);
     }
 
     @Override
     public boolean executeCommand() {
-        oldSelection = Main.map.mapView.getEditLayer().data.getSelected();
-        Main.map.mapView.getEditLayer().data.setSelected(newSelection);
+        oldSelection = Main.getLayerManager().getEditLayer().data.getSelected();
+        Main.getLayerManager().getEditLayer().data.setSelected(newSelection);
         return true;
     }
Index: trunk/src/org/openstreetmap/josm/command/conflict/ConflictAddCommand.java
===================================================================
--- trunk/src/org/openstreetmap/josm/command/conflict/ConflictAddCommand.java	(revision 10363)
+++ trunk/src/org/openstreetmap/josm/command/conflict/ConflictAddCommand.java	(revision 10364)
@@ -62,5 +62,5 @@
     @Override
     public void undoCommand() {
-        if (Main.isDisplayingMapView() && !Main.map.mapView.hasLayer(getLayer())) {
+        if (Main.isDisplayingMapView() && !Main.getLayerManager().containsLayer(getLayer())) {
             Main.warn(tr("Layer ''{0}'' does not exist any more. Cannot remove conflict for object ''{1}''.",
                     getLayer().getName(),
Index: trunk/src/org/openstreetmap/josm/command/conflict/ConflictResolveCommand.java
===================================================================
--- trunk/src/org/openstreetmap/josm/command/conflict/ConflictResolveCommand.java	(revision 10363)
+++ trunk/src/org/openstreetmap/josm/command/conflict/ConflictResolveCommand.java	(revision 10364)
@@ -71,5 +71,5 @@
 
         if (Main.isDisplayingMapView()) {
-            if (!Main.map.mapView.hasLayer(getLayer())) {
+            if (!Main.getLayerManager().containsLayer(getLayer())) {
                 Main.warn(tr("Cannot undo command ''{0}'' because layer ''{1}'' is not present any more",
                         this.toString(),
@@ -79,5 +79,5 @@
             }
 
-            Main.map.mapView.setActiveLayer(getLayer());
+            Main.getLayerManager().setActiveLayer(getLayer());
         }
         reconstituteConflicts();
Index: trunk/src/org/openstreetmap/josm/command/conflict/RelationMemberConflictResolverCommand.java
===================================================================
--- trunk/src/org/openstreetmap/josm/command/conflict/RelationMemberConflictResolverCommand.java	(revision 10363)
+++ trunk/src/org/openstreetmap/josm/command/conflict/RelationMemberConflictResolverCommand.java	(revision 10364)
@@ -75,5 +75,5 @@
     public void undoCommand() {
         OsmDataLayer layer = getLayer();
-        if (!Main.map.mapView.hasLayer(layer)) {
+        if (!Main.getLayerManager().containsLayer(layer)) {
             Main.warn(tr("Cannot undo command ''{0}'' because layer ''{1}'' is not present any more",
                     this.toString(),
@@ -83,5 +83,5 @@
         }
 
-        Main.map.mapView.setActiveLayer(layer);
+        Main.getLayerManager().setActiveLayer(layer);
         OsmDataLayer editLayer = Main.main.getEditLayer();
 
Index: trunk/src/org/openstreetmap/josm/data/AutosaveTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/AutosaveTask.java	(revision 10363)
+++ trunk/src/org/openstreetmap/josm/data/AutosaveTask.java	(revision 10364)
@@ -127,5 +127,5 @@
             MapView.addLayerChangeListener(this);
             if (Main.isDisplayingMapView()) {
-                for (OsmDataLayer l: Main.map.mapView.getLayersOfType(OsmDataLayer.class)) {
+                for (OsmDataLayer l: Main.getLayerManager().getLayersOfType(OsmDataLayer.class)) {
                     registerNewlayer(l);
                 }
Index: trunk/src/org/openstreetmap/josm/gui/ImageryMenu.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/ImageryMenu.java	(revision 10363)
+++ trunk/src/org/openstreetmap/josm/gui/ImageryMenu.java	(revision 10364)
@@ -70,5 +70,5 @@
         @Override
         public void actionPerformed(ActionEvent e) {
-            Collection<ImageryLayer> layers = Main.map.mapView.getLayersOfType(ImageryLayer.class);
+            Collection<ImageryLayer> layers = Main.getLayerManager().getLayersOfType(ImageryLayer.class);
             if (layers.isEmpty()) {
                 setEnabled(false);
Index: trunk/src/org/openstreetmap/josm/gui/MapView.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MapView.java	(revision 10363)
+++ trunk/src/org/openstreetmap/josm/gui/MapView.java	(revision 10364)
@@ -417,5 +417,5 @@
     public static void addEditLayerChangeListener(EditLayerChangeListener listener, boolean initialFire) {
         if (listener != null) {
-            boolean doFire = initialFire && Main.isDisplayingMapView() && Main.map.mapView.getEditLayer() != null;
+            boolean doFire = initialFire && Main.isDisplayingMapView() && Main.getLayerManager().getEditLayer() != null;
             if (doFire) {
                 Main.getLayerManager().addAndFireActiveLayerChangeListener(new EditLayerChangeAdapter(listener));
Index: trunk/src/org/openstreetmap/josm/gui/conflict/pair/ListMerger.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/pair/ListMerger.java	(revision 10363)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/pair/ListMerger.java	(revision 10364)
@@ -891,5 +891,5 @@
     protected final <P extends OsmPrimitive> OsmDataLayer findLayerFor(P primitive) {
         if (primitive != null) {
-            Iterable<OsmDataLayer> layers = Main.map.mapView.getLayersOfType(OsmDataLayer.class);
+            Iterable<OsmDataLayer> layers = Main.getLayerManager().getLayersOfType(OsmDataLayer.class);
             // Find layer with same dataset
             for (OsmDataLayer layer : layers) {
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/layer/DuplicateAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/layer/DuplicateAction.java	(revision 10363)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/layer/DuplicateAction.java	(revision 10364)
@@ -57,5 +57,5 @@
 
         List<String> layerNames = new ArrayList<>();
-        for (Layer l: Main.map.mapView.getAllLayers()) {
+        for (Layer l: Main.getLayerManager().getLayers()) {
             layerNames.add(l.getName());
         }
Index: trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java	(revision 10363)
+++ trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java	(revision 10364)
@@ -300,5 +300,5 @@
             drawHelper.readPreferences(getName());
             drawHelper.drawAll(g, mv, visibleSegments);
-            if (Main.map.mapView.getActiveLayer() == this) {
+            if (Main.getLayerManager().getActiveLayer() == this) {
                 drawHelper.drawColorBar(g, mv);
             }
Index: trunk/src/org/openstreetmap/josm/gui/layer/Layer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/Layer.java	(revision 10363)
+++ trunk/src/org/openstreetmap/josm/gui/layer/Layer.java	(revision 10364)
@@ -171,5 +171,5 @@
         long memoryBytesRequired = 50L * 1024L * 1024L; // assumed minimum JOSM memory footprint
         if (Main.map != null && Main.map.mapView != null) {
-            for (Layer layer: Main.map.mapView.getAllLayers()) {
+            for (Layer layer: Main.getLayerManager().getLayers()) {
                 memoryBytesRequired += layer.estimateMemoryUsage();
             }
Index: trunk/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java	(revision 10363)
+++ trunk/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java	(revision 10364)
@@ -181,5 +181,5 @@
                 // If none, we'll zoom to the bounding box of the layer with the photos.
                 boolean boundingBoxedLayerFound = false;
-                for (Layer l: Main.map.mapView.getAllLayers()) {
+                for (Layer l: Main.getLayerManager().getLayers()) {
                     if (l != yLayer) {
                         BoundingXYVisitor bbox = new BoundingXYVisitor();
@@ -557,5 +557,5 @@
     public void actionPerformed(ActionEvent arg0) {
         // Construct the list of loaded GPX tracks
-        Collection<Layer> layerLst = Main.map.mapView.getAllLayers();
+        Collection<Layer> layerLst = Main.getLayerManager().getLayers();
         GpxDataWrapper defaultItem = null;
         for (Layer cur : layerLst) {
Index: trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(revision 10363)
+++ trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(revision 10364)
@@ -784,5 +784,5 @@
     private void clearOtherCurrentPhotos() {
         for (GeoImageLayer layer:
-                 Main.map.mapView.getLayersOfType(GeoImageLayer.class)) {
+                 Main.getLayerManager().getLayersOfType(GeoImageLayer.class)) {
             if (layer != this) {
                 layer.clearCurrentPhoto(false);
Index: trunk/src/org/openstreetmap/josm/gui/layer/gpx/DownloadWmsAlongTrackAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/gpx/DownloadWmsAlongTrackAction.java	(revision 10363)
+++ trunk/src/org/openstreetmap/josm/gui/layer/gpx/DownloadWmsAlongTrackAction.java	(revision 10364)
@@ -116,5 +116,5 @@
             return null;
         }
-        List<AbstractTileSourceLayer> targetLayers = Main.map.mapView.getLayersOfType(AbstractTileSourceLayer.class);
+        List<AbstractTileSourceLayer> targetLayers = Main.getLayerManager().getLayersOfType(AbstractTileSourceLayer.class);
         if (targetLayers.isEmpty()) {
             if (!GraphicsEnvironment.isHeadless()) {
Index: trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java	(revision 10363)
+++ trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java	(revision 10364)
@@ -449,10 +449,10 @@
             return;
         Marker m = null;
-        Layer l = Main.map.mapView.getActiveLayer();
+        Layer l = Main.getLayerManager().getActiveLayer();
         if (l != null) {
             m = getAdjacentMarker(startMarker, next, l);
         }
         if (m == null) {
-            for (Layer layer : Main.map.mapView.getAllLayers()) {
+            for (Layer layer : Main.getLayerManager().getLayers()) {
                 m = getAdjacentMarker(startMarker, next, layer);
                 if (m != null) {
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintMenu.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintMenu.java	(revision 10363)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintMenu.java	(revision 10364)
@@ -70,5 +70,5 @@
 
         private static boolean mapHasGpxorMarkerLayer() {
-            for (Layer layer : Main.map.mapView.getAllLayers()) {
+            for (Layer layer : Main.getLayerManager().getLayers()) {
                 if (layer instanceof GpxLayer || layer instanceof MarkerLayer) {
                     return true;
Index: trunk/src/org/openstreetmap/josm/io/NoteImporter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/NoteImporter.java	(revision 10363)
+++ trunk/src/org/openstreetmap/josm/io/NoteImporter.java	(revision 10364)
@@ -38,5 +38,5 @@
         try (InputStream is = Compression.getUncompressedFileInputStream(file)) {
             final NoteLayer layer = loadLayer(is, file, file.getName(), progressMonitor);
-            if (Main.map == null || !Main.map.mapView.hasLayer(layer)) {
+            if (Main.map == null || !Main.getLayerManager().containsLayer(layer)) {
                 GuiHelper.runInEDT(new Runnable() {
                     @Override
@@ -69,5 +69,5 @@
         List<NoteLayer> noteLayers = null;
         if (Main.map != null) {
-            noteLayers = Main.map.mapView.getLayersOfType(NoteLayer.class);
+            noteLayers = Main.getLayerManager().getLayersOfType(NoteLayer.class);
         }
         final NoteLayer layer;
Index: trunk/src/org/openstreetmap/josm/io/OsmApi.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/OsmApi.java	(revision 10363)
+++ trunk/src/org/openstreetmap/josm/io/OsmApi.java	(revision 10364)
@@ -249,5 +249,5 @@
              * been disabled! */
             if (Main.isDisplayingMapView()) {
-                for (Layer l : Main.map.mapView.getLayersOfType(ImageryLayer.class)) {
+                for (Layer l : Main.getLayerManager().getLayersOfType(ImageryLayer.class)) {
                     if (((ImageryLayer) l).getInfo().isBlacklisted()) {
                         Main.info(tr("Removed layer {0} because it is not allowed by the configured API.", l.getName()));
Index: trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/ImageryHandler.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/ImageryHandler.java	(revision 10363)
+++ trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/ImageryHandler.java	(revision 10364)
@@ -95,5 +95,5 @@
         final ImageryInfo imgInfo = buildImageryInfo();
         if (Main.isDisplayingMapView()) {
-            for (ImageryLayer layer : Main.map.mapView.getLayersOfType(ImageryLayer.class)) {
+            for (ImageryLayer layer : Main.getLayerManager().getLayersOfType(ImageryLayer.class)) {
                 if (layer.getInfo().equals(imgInfo)) {
                     Main.info("Imagery layer already exists: "+imgInfo);
Index: trunk/src/org/openstreetmap/josm/io/session/MarkerSessionExporter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/session/MarkerSessionExporter.java	(revision 10363)
+++ trunk/src/org/openstreetmap/josm/io/session/MarkerSessionExporter.java	(revision 10364)
@@ -44,5 +44,5 @@
     public Collection<Layer> getDependencies() {
         Layer gpxLayer = layer.fromLayer;
-        if (gpxLayer != null && Main.map.mapView.hasLayer(gpxLayer))
+        if (gpxLayer != null && Main.getLayerManager().containsLayer(gpxLayer))
             return Collections.singleton(gpxLayer);
         return Collections.emptySet();
