Index: trunk/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java	(revision 10317)
+++ trunk/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java	(revision 10318)
@@ -169,8 +169,6 @@
         } else if (type == ImageryType.TMS || type == ImageryType.BING || type == ImageryType.SCANEX) {
             setEnabled(true);
-        } else if (Main.isDisplayingMapView() && !Main.map.mapView.getAllLayers().isEmpty()) {
-            setEnabled(true);
         } else {
-            setEnabled(false);
+            setEnabled(!Main.getLayerManager().getLayers().isEmpty());
         }
     }
Index: trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java	(revision 10317)
+++ trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java	(revision 10318)
@@ -261,5 +261,5 @@
 
     private static BoundingXYVisitor modeData(BoundingXYVisitor v) {
-        for (Layer l : Main.map.mapView.getAllLayers()) {
+        for (Layer l : Main.getLayerManager().getLayers()) {
             l.visitBoundingBox(v);
         }
@@ -364,5 +364,5 @@
             break;
         default:
-            setEnabled(Main.isDisplayingMapView() && Main.map.mapView.hasLayers());
+            setEnabled(!Main.getLayerManager().getLayers().isEmpty());
         }
     }
Index: trunk/src/org/openstreetmap/josm/actions/DeleteLayerAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/DeleteLayerAction.java	(revision 10317)
+++ trunk/src/org/openstreetmap/josm/actions/DeleteLayerAction.java	(revision 10318)
@@ -2,6 +2,6 @@
 package org.openstreetmap.josm.actions;
 
+import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
 import static org.openstreetmap.josm.tools.I18n.tr;
-import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
 
 import java.awt.event.ActionEvent;
@@ -10,6 +10,6 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.tools.Shortcut;
-import org.openstreetmap.josm.gui.layer.Layer;
 
 /**
@@ -42,5 +42,5 @@
     @Override
     protected void updateEnabledState() {
-        setEnabled(Main.isDisplayingMapView() && Main.map.mapView.getActiveLayer() != null);
+        setEnabled(Main.getLayerManager().getActiveLayer() != null);
     }
 }
Index: trunk/src/org/openstreetmap/josm/actions/DownloadNotesInViewAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/DownloadNotesInViewAction.java	(revision 10317)
+++ trunk/src/org/openstreetmap/josm/actions/DownloadNotesInViewAction.java	(revision 10318)
@@ -43,6 +43,5 @@
     @Override
     protected void updateEnabledState() {
-        setEnabled(Main.isDisplayingMapView()
-                && Main.map.mapView.getActiveLayer() != null
+        setEnabled(Main.getLayerManager().getActiveLayer() != null
                 && !Main.isOffline(OnlineResource.OSM_API));
     }
Index: trunk/src/org/openstreetmap/josm/actions/GpxExportAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/GpxExportAction.java	(revision 10317)
+++ trunk/src/org/openstreetmap/josm/actions/GpxExportAction.java	(revision 10318)
@@ -43,7 +43,5 @@
      */
     protected Layer getLayer() {
-        if (!Main.isDisplayingMapView())
-            return null;
-        Layer layer = Main.map.mapView.getActiveLayer();
+        Layer layer = Main.getLayerManager().getActiveLayer();
         return (layer instanceof GpxLayer || layer instanceof OsmDataLayer) ? layer : null;
     }
Index: trunk/src/org/openstreetmap/josm/actions/MapRectifierWMSmenuAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/MapRectifierWMSmenuAction.java	(revision 10317)
+++ trunk/src/org/openstreetmap/josm/actions/MapRectifierWMSmenuAction.java	(revision 10318)
@@ -239,5 +239,5 @@
     @Override
     protected void updateEnabledState() {
-        setEnabled(Main.isDisplayingMapView() && !Main.map.mapView.getAllLayers().isEmpty());
+        setEnabled(!Main.getLayerManager().getLayers().isEmpty());
     }
 }
Index: trunk/src/org/openstreetmap/josm/actions/MergeLayerAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/MergeLayerAction.java	(revision 10317)
+++ trunk/src/org/openstreetmap/josm/actions/MergeLayerAction.java	(revision 10318)
@@ -64,5 +64,5 @@
                 }
                 if (layerMerged) {
-                    Main.map.mapView.setActiveLayer(targetLayer);
+                    Main.getLayerManager().setActiveLayer(targetLayer);
                 }
             }
Index: trunk/src/org/openstreetmap/josm/actions/SaveActionBase.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/SaveActionBase.java	(revision 10317)
+++ trunk/src/org/openstreetmap/josm/actions/SaveActionBase.java	(revision 10318)
@@ -52,9 +52,7 @@
      */
     public boolean doSave() {
-        if (Main.isDisplayingMapView()) {
-            Layer layer = Main.map.mapView.getActiveLayer();
-            if (layer != null && layer.isSavable()) {
-                return doSave(layer);
-            }
+        Layer layer = Main.getLayerManager().getActiveLayer();
+        if (layer != null && layer.isSavable()) {
+            return doSave(layer);
         }
         return false;
@@ -134,12 +132,6 @@
     @Override
     protected void updateEnabledState() {
-        boolean check = Main.isDisplayingMapView()
-        && Main.map.mapView.getActiveLayer() != null;
-        if (!check) {
-            setEnabled(false);
-            return;
-        }
-        Layer layer = Main.map.mapView.getActiveLayer();
-        setEnabled(layer != null && layer.isSavable());
+        Layer activeLayer = Main.getLayerManager().getActiveLayer();
+        setEnabled(activeLayer != null && activeLayer.isSavable());
     }
 
Index: trunk/src/org/openstreetmap/josm/actions/SessionLoadAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/SessionLoadAction.java	(revision 10317)
+++ trunk/src/org/openstreetmap/josm/actions/SessionLoadAction.java	(revision 10318)
@@ -136,5 +136,5 @@
                 }
                 if (active != null) {
-                    Main.map.mapView.setActiveLayer(active);
+                    Main.getLayerManager().setActiveLayer(active);
                 }
                 if (noMap) {
Index: trunk/src/org/openstreetmap/josm/actions/SessionSaveAsAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/SessionSaveAsAction.java	(revision 10317)
+++ trunk/src/org/openstreetmap/josm/actions/SessionSaveAsAction.java	(revision 10318)
@@ -161,5 +161,5 @@
 
         int active = -1;
-        Layer activeLayer = Main.map.mapView.getActiveLayer();
+        Layer activeLayer = Main.getLayerManager().getActiveLayer();
         if (activeLayer != null) {
             active = layersOut.indexOf(activeLayer);
@@ -204,5 +204,5 @@
          */
         public final void initialize() {
-            layers = new ArrayList<>(Main.map.mapView.getAllLayersAsList());
+            layers = new ArrayList<>(Main.getLayerManager().getLayers());
             exporters = new HashMap<>();
             dependencies = new MultiMap<>();
Index: trunk/src/org/openstreetmap/josm/actions/UploadNotesAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/UploadNotesAction.java	(revision 10317)
+++ trunk/src/org/openstreetmap/josm/actions/UploadNotesAction.java	(revision 10318)
@@ -31,10 +31,7 @@
     @Override
     public void actionPerformed(ActionEvent e) {
-        List<NoteLayer> noteLayers = null;
-        if (Main.map != null) {
-            noteLayers = Main.map.mapView.getLayersOfType(NoteLayer.class);
-        }
+        List<NoteLayer> noteLayers = Main.getLayerManager().getLayersOfType(NoteLayer.class);
         NoteLayer layer;
-        if (noteLayers != null && !noteLayers.isEmpty()) {
+        if (!noteLayers.isEmpty()) {
             layer = noteLayers.get(0);
         } else {
@@ -42,13 +39,9 @@
             return;
         }
-        if (Main.isDebugEnabled()) {
-            Main.debug("uploading note changes");
-        }
+        Main.debug("uploading note changes");
         NoteData noteData = layer.getNoteData();
 
         if (noteData == null || !noteData.isModified()) {
-            if (Main.isDebugEnabled()) {
-                Main.debug("No changed notes to upload");
-            }
+            Main.debug("No changed notes to upload");
             return;
         }
Index: trunk/src/org/openstreetmap/josm/actions/ZoomInAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/ZoomInAction.java	(revision 10317)
+++ trunk/src/org/openstreetmap/josm/actions/ZoomInAction.java	(revision 10318)
@@ -52,8 +52,5 @@
     @Override
     protected void updateEnabledState() {
-        setEnabled(
-                Main.isDisplayingMapView()
-                && Main.map.mapView.hasLayers()
-        );
+        setEnabled(!Main.getLayerManager().getLayers().isEmpty());
     }
 
Index: trunk/src/org/openstreetmap/josm/actions/ZoomOutAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/ZoomOutAction.java	(revision 10317)
+++ trunk/src/org/openstreetmap/josm/actions/ZoomOutAction.java	(revision 10318)
@@ -38,8 +38,5 @@
     @Override
     protected void updateEnabledState() {
-        setEnabled(
-                Main.isDisplayingMapView()
-                && Main.map.mapView.hasLayers()
-        );
+        setEnabled(!Main.getLayerManager().getLayers().isEmpty());
     }
 }
Index: trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java	(revision 10317)
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java	(revision 10318)
@@ -155,11 +155,9 @@
 
         private GpxLayer findGpxMergeLayer() {
-            if (!Main.isDisplayingMapView())
-                return null;
             boolean merge = Main.pref.getBoolean("download.gps.mergeWithLocal", false);
-            Layer active = Main.map.mapView.getActiveLayer();
+            Layer active = Main.getLayerManager().getActiveLayer();
             if (active instanceof GpxLayer && (merge || ((GpxLayer) active).data.fromServer))
                 return (GpxLayer) active;
-            for (GpxLayer l : Main.map.mapView.getLayersOfType(GpxLayer.class)) {
+            for (GpxLayer l : Main.getLayerManager().getLayersOfType(GpxLayer.class)) {
                 if (merge || l.data.fromServer)
                     return l;
@@ -169,7 +167,5 @@
 
         private MarkerLayer findMarkerMergeLayer(GpxLayer fromLayer) {
-            if (!Main.isDisplayingMapView())
-                return null;
-            for (MarkerLayer l : Main.map.mapView.getLayersOfType(MarkerLayer.class)) {
+            for (MarkerLayer l : Main.getLayerManager().getLayersOfType(MarkerLayer.class)) {
                 if (fromLayer != null && l.fromLayer == fromLayer)
                     return l;
Index: trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadNotesTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadNotesTask.java	(revision 10317)
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadNotesTask.java	(revision 10318)
@@ -113,9 +113,6 @@
             }
 
-            List<NoteLayer> noteLayers = null;
-            if (Main.map != null) {
-                noteLayers = Main.map.mapView.getLayersOfType(NoteLayer.class);
-            }
-            if (noteLayers != null && !noteLayers.isEmpty()) {
+            List<NoteLayer> noteLayers = Main.getLayerManager().getLayersOfType(NoteLayer.class);
+            if (!noteLayers.isEmpty()) {
                 noteLayers.get(0).getNoteData().addNotes(notesData);
             } else {
Index: trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java	(revision 10317)
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java	(revision 10318)
@@ -20,5 +20,4 @@
 import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
-import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.gui.progress.NullProgressMonitor;
@@ -217,16 +216,9 @@
 
         protected int getNumDataLayers() {
-            if (!Main.isDisplayingMapView()) return 0;
-            return Utils.filteredCollection(Main.map.mapView.getAllLayers(), OsmDataLayer.class).size();
+            return Main.getLayerManager().getLayersOfType(OsmDataLayer.class).size();
         }
 
         protected OsmDataLayer getFirstDataLayer() {
-            if (!Main.isDisplayingMapView()) return null;
-            Collection<Layer> layers = Main.map.mapView.getAllLayersAsList();
-            for (Layer layer : layers) {
-                if (layer instanceof OsmDataLayer)
-                    return (OsmDataLayer) layer;
-            }
-            return null;
+            return Utils.find(Main.getLayerManager().getLayers(), OsmDataLayer.class);
         }
 
Index: trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadTaskList.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadTaskList.java	(revision 10317)
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadTaskList.java	(revision 10318)
@@ -73,5 +73,5 @@
             Layer l = new OsmDataLayer(new DataSet(), OsmDataLayer.createNewName(), null);
             Main.main.addLayer(l);
-            Main.map.mapView.setActiveLayer(l);
+            Main.getLayerManager().setActiveLayer(l);
         }
 
