Index: trunk/test/functional/org/openstreetmap/josm/gui/mappaint/StyleCacheTest.java
===================================================================
--- trunk/test/functional/org/openstreetmap/josm/gui/mappaint/StyleCacheTest.java	(revision 12635)
+++ trunk/test/functional/org/openstreetmap/josm/gui/mappaint/StyleCacheTest.java	(revision 12636)
@@ -17,5 +17,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.data.osm.DataSet;
@@ -23,4 +22,5 @@
 import org.openstreetmap.josm.data.osm.visitor.paint.Rendering;
 import org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.MapView;
 import org.openstreetmap.josm.gui.NavigatableComponent;
@@ -93,5 +93,5 @@
         g.setColor(Color.BLACK);
         g.fillRect(0, 0, IMG_WIDTH, IMG_WIDTH);
-        nc = new MapView(Main.getLayerManager(), null);
+        nc = new MapView(MainApplication.getLayerManager(), null);
         nc.setBounds(0, 0, IMG_WIDTH, IMG_HEIGHT);
     }
Index: trunk/test/unit/org/openstreetmap/josm/JOSMFixture.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/JOSMFixture.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/JOSMFixture.java	(revision 12636)
@@ -146,7 +146,7 @@
     private void setupGUI() {
         JOSMTestRules.cleanLayerEnvironment();
-        assertTrue(Main.getLayerManager().getLayers().isEmpty());
-        assertNull(Main.getLayerManager().getEditLayer());
-        assertNull(Main.getLayerManager().getActiveLayer());
+        assertTrue(MainApplication.getLayerManager().getLayers().isEmpty());
+        assertNull(MainApplication.getLayerManager().getEditLayer());
+        assertNull(MainApplication.getLayerManager().getActiveLayer());
 
         initContentPane();
@@ -163,5 +163,5 @@
         }
         // Add a test layer to the layer manager to get the MapFrame
-        Main.getLayerManager().addLayer(new TestLayer());
+        MainApplication.getLayerManager().addLayer(new TestLayer());
     }
 
@@ -188,5 +188,5 @@
     public static void initMainPanel(boolean reAddListeners) {
         if (Main.mainPanel == null) {
-            Main.mainPanel = new MainPanel(Main.getLayerManager());
+            Main.mainPanel = new MainPanel(MainApplication.getLayerManager());
         }
         if (reAddListeners) {
Index: trunk/test/unit/org/openstreetmap/josm/actions/AddImageryLayerActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/actions/AddImageryLayerActionTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/actions/AddImageryLayerActionTest.java	(revision 12636)
@@ -13,7 +13,7 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.data.imagery.ImageryInfo;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.TMSLayer;
 import org.openstreetmap.josm.gui.layer.WMSLayer;
@@ -58,9 +58,9 @@
     @Test
     public void testActionPerformedEnabledTms() {
-        assertTrue(Main.getLayerManager().getLayersOfType(TMSLayer.class).isEmpty());
+        assertTrue(MainApplication.getLayerManager().getLayersOfType(TMSLayer.class).isEmpty());
         new AddImageryLayerAction(new ImageryInfo("foo_tms", "http://bar", "tms", null, null)).actionPerformed(null);
-        List<TMSLayer> tmsLayers = Main.getLayerManager().getLayersOfType(TMSLayer.class);
+        List<TMSLayer> tmsLayers = MainApplication.getLayerManager().getLayersOfType(TMSLayer.class);
         assertEquals(1, tmsLayers.size());
-        Main.getLayerManager().removeLayer(tmsLayers.get(0));
+        MainApplication.getLayerManager().removeLayer(tmsLayers.get(0));
     }
 
@@ -77,8 +77,8 @@
         new AddImageryLayerAction(new ImageryInfo("localhost", "http://localhost:" + wireMockRule.port() + "/wms?",
                 "wms_endpoint", null, null)).actionPerformed(null);
-        List<WMSLayer> wmsLayers = Main.getLayerManager().getLayersOfType(WMSLayer.class);
+        List<WMSLayer> wmsLayers = MainApplication.getLayerManager().getLayersOfType(WMSLayer.class);
         assertEquals(1, wmsLayers.size());
 
-        Main.getLayerManager().removeLayer(wmsLayers.get(0));
+        MainApplication.getLayerManager().removeLayer(wmsLayers.get(0));
     }
 
@@ -88,5 +88,5 @@
     @Test
     public void testActionPerformedDisabled() {
-        assertTrue(Main.getLayerManager().getLayersOfType(TMSLayer.class).isEmpty());
+        assertTrue(MainApplication.getLayerManager().getLayersOfType(TMSLayer.class).isEmpty());
         try {
             new AddImageryLayerAction(new ImageryInfo("foo")).actionPerformed(null);
@@ -94,5 +94,5 @@
             assertEquals("Parameter 'info.url' must not be null", expected.getMessage());
         }
-        assertTrue(Main.getLayerManager().getLayersOfType(TMSLayer.class).isEmpty());
+        assertTrue(MainApplication.getLayerManager().getLayersOfType(TMSLayer.class).isEmpty());
     }
 }
Index: trunk/test/unit/org/openstreetmap/josm/actions/AlignInLineActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/actions/AlignInLineActionTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/actions/AlignInLineActionTest.java	(revision 12636)
@@ -16,4 +16,5 @@
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
@@ -68,5 +69,5 @@
 
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
 
             // Create an open way.
@@ -79,5 +80,5 @@
         } finally {
             // Ensure we clean the place before leaving, even if test fails.
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
 
@@ -109,5 +110,5 @@
 
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
 
             // Create a closed way.
@@ -119,5 +120,5 @@
         } finally {
             // Ensure we clean the place before leaving, even if test fails.
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
 
@@ -150,5 +151,5 @@
 
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
 
             // Create 2 ways.
@@ -163,5 +164,5 @@
         } finally {
             // Ensure we clean the place before leaving, even if test fails.
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
 
Index: trunk/test/unit/org/openstreetmap/josm/actions/CopyActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/actions/CopyActionTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/actions/CopyActionTest.java	(revision 12636)
@@ -17,9 +17,9 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.datatransfer.ClipboardUtils;
 import org.openstreetmap.josm.gui.datatransfer.data.PrimitiveTransferData;
@@ -66,5 +66,5 @@
         assertTrue(action.warningShown);
 
-        Main.getLayerManager().addLayer(new OsmDataLayer(new DataSet(), "test", null));
+        MainApplication.getLayerManager().addLayer(new OsmDataLayer(new DataSet(), "test", null));
         action.warningShown = false;
 
@@ -97,5 +97,5 @@
         data.setSelected(way);
 
-        Main.getLayerManager().addLayer(new OsmDataLayer(data, "test", null));
+        MainApplication.getLayerManager().addLayer(new OsmDataLayer(data, "test", null));
 
         CopyAction action = new CopyAction() {
Index: trunk/test/unit/org/openstreetmap/josm/actions/CreateCircleActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/actions/CreateCircleActionTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/actions/CreateCircleActionTest.java	(revision 12636)
@@ -11,5 +11,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.EastNorth;
 import org.openstreetmap.josm.data.coor.LatLon;
@@ -18,4 +17,5 @@
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
@@ -67,9 +67,9 @@
         action.setEnabled(true);
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             action.actionPerformed(null);
         } finally {
             // Ensure we clean the place before leaving, even if test fails.
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
 
@@ -138,9 +138,9 @@
             action.setEnabled(true);
             try {
-                Main.getLayerManager().addLayer(layer);
+                MainApplication.getLayerManager().addLayer(layer);
                 action.actionPerformed(null);
             } finally {
                 // Ensure we clean the place before leaving, even if test fails.
-                Main.getLayerManager().removeLayer(layer);
+                MainApplication.getLayerManager().removeLayer(layer);
             }
 
Index: trunk/test/unit/org/openstreetmap/josm/actions/DeleteLayerActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/actions/DeleteLayerActionTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/actions/DeleteLayerActionTest.java	(revision 12636)
@@ -7,6 +7,6 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
@@ -36,8 +36,8 @@
         // OsmDataLayer
         OsmDataLayer layer = new OsmDataLayer(new DataSet(), "", null);
-        Main.getLayerManager().addLayer(layer);
-        assertNotNull(Main.getLayerManager().getActiveLayer());
+        MainApplication.getLayerManager().addLayer(layer);
+        assertNotNull(MainApplication.getLayerManager().getActiveLayer());
         action.actionPerformed(null);
-        assertNull(Main.getLayerManager().getActiveLayer());
+        assertNull(MainApplication.getLayerManager().getActiveLayer());
     }
 }
Index: trunk/test/unit/org/openstreetmap/josm/actions/JoinAreasActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/actions/JoinAreasActionTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/actions/JoinAreasActionTest.java	(revision 12636)
@@ -26,4 +26,5 @@
 import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
@@ -60,10 +61,10 @@
             DataSet ds = OsmReader.parseDataSet(is, null);
             Layer layer = new OsmDataLayer(ds, null, null);
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             try {
                 new JoinAreasAction().join(ds.getWays());
             } finally {
                 // Ensure we clean the place before leaving, even if test fails.
-                Main.getLayerManager().removeLayer(layer);
+                MainApplication.getLayerManager().removeLayer(layer);
             }
         }
@@ -81,5 +82,5 @@
             assertEquals(10, ds.getWays().size());
             Layer layer = new OsmDataLayer(ds, null, null);
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             for (String ref : new String[]{"A", "B", "C", "D", "E"}) {
                 System.out.print("Joining ways " + ref);
@@ -112,5 +113,5 @@
 
         // set current edit layer
-        Main.getLayerManager().addLayer(new OsmDataLayer(dsToJoin, "join", null));
+        MainApplication.getLayerManager().addLayer(new OsmDataLayer(dsToJoin, "join", null));
 
         Collection<OsmPrimitive> testPrims = dsToJoin.getPrimitives(osm -> osm.get("test") != null);
Index: trunk/test/unit/org/openstreetmap/josm/actions/MergeLayerActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/actions/MergeLayerActionTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/actions/MergeLayerActionTest.java	(revision 12636)
@@ -8,6 +8,6 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.LayerManagerTest.TestLayer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
@@ -38,6 +38,6 @@
             action = new MergeLayerAction();
         }
-        for (TestLayer testLayer : Main.getLayerManager().getLayersOfType(TestLayer.class)) {
-            Main.getLayerManager().removeLayer(testLayer);
+        for (TestLayer testLayer : MainApplication.getLayerManager().getLayersOfType(TestLayer.class)) {
+            MainApplication.getLayerManager().removeLayer(testLayer);
         }
     }
@@ -48,7 +48,7 @@
     @Test
     public void testMergeNoSourceLayer() {
-        assertNull(Main.getLayerManager().getActiveLayer());
+        assertNull(MainApplication.getLayerManager().getActiveLayer());
         action.actionPerformed(null);
-        assertEquals(0, Main.getLayerManager().getLayers().size());
+        assertEquals(0, MainApplication.getLayerManager().getLayers().size());
     }
 
@@ -59,8 +59,8 @@
     public void testMergeNoTargetLayer() {
         OsmDataLayer layer = new OsmDataLayer(new DataSet(), "", null);
-        Main.getLayerManager().addLayer(layer);
-        assertEquals(1, Main.getLayerManager().getLayers().size());
+        MainApplication.getLayerManager().addLayer(layer);
+        assertEquals(1, MainApplication.getLayerManager().getLayers().size());
         assertNull(action.merge(layer));
-        assertEquals(1, Main.getLayerManager().getLayers().size());
+        assertEquals(1, MainApplication.getLayerManager().getLayers().size());
     }
 
@@ -73,9 +73,9 @@
         OsmDataLayer layer1 = new OsmDataLayer(new DataSet(), "1", null);
         OsmDataLayer layer2 = new OsmDataLayer(new DataSet(), "2", null);
-        Main.getLayerManager().addLayer(layer1);
-        Main.getLayerManager().addLayer(layer2);
-        assertEquals(2, Main.getLayerManager().getLayers().size());
+        MainApplication.getLayerManager().addLayer(layer1);
+        MainApplication.getLayerManager().addLayer(layer2);
+        assertEquals(2, MainApplication.getLayerManager().getLayers().size());
         action.merge(layer2).get();
-        assertEquals(1, Main.getLayerManager().getLayers().size());
+        assertEquals(1, MainApplication.getLayerManager().getLayers().size());
     }
 }
Index: trunk/test/unit/org/openstreetmap/josm/actions/OrthogonalizeActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/actions/OrthogonalizeActionTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/actions/OrthogonalizeActionTest.java	(revision 12636)
@@ -10,5 +10,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.actions.OrthogonalizeAction.Direction;
@@ -18,4 +17,5 @@
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.io.OsmReader;
@@ -100,5 +100,5 @@
             final DataSet ds = OsmReader.parseDataSet(in, null);
             // TODO: Executing commands depends on active edit layer
-            Main.getLayerManager().addLayer(new OsmDataLayer(ds, "ds", null));
+            MainApplication.getLayerManager().addLayer(new OsmDataLayer(ds, "ds", null));
             for (String s : search) {
                 ds.addSelected(SubclassFilteredCollection.filter(ds.allPrimitives(), SearchCompiler.compile(s)));
Index: trunk/test/unit/org/openstreetmap/josm/actions/PurgeActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/actions/PurgeActionTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/actions/PurgeActionTest.java	(revision 12636)
@@ -11,8 +11,8 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.io.IllegalDataException;
@@ -45,5 +45,5 @@
             DataSet ds = OsmReader.parseDataSet(is, null);
             OsmDataLayer layer = new OsmDataLayer(ds, null, null);
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             try {
                 for (Way w : ds.getWays()) {
@@ -61,5 +61,5 @@
             } finally {
                 // Ensure we clean the place before leaving, even if test fails.
-                Main.getLayerManager().removeLayer(layer);
+                MainApplication.getLayerManager().removeLayer(layer);
             }
         }
Index: trunk/test/unit/org/openstreetmap/josm/actions/SelectByInternalPointActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/actions/SelectByInternalPointActionTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/actions/SelectByInternalPointActionTest.java	(revision 12636)
@@ -9,5 +9,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.EastNorth;
 import org.openstreetmap.josm.data.osm.DataSet;
@@ -16,4 +15,5 @@
 import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
@@ -49,5 +49,5 @@
     @Test
     public void testNoDataSet() {
-        assertNull(Main.getLayerManager().getEditDataSet());
+        assertNull(MainApplication.getLayerManager().getEditDataSet());
         assertEquals(0, SelectByInternalPointAction.getSurroundingObjects(null).size());
         assertNull(SelectByInternalPointAction.getSmallestSurroundingObject(null));
@@ -77,5 +77,5 @@
         ds.addPrimitive(r);
         OsmDataLayer layer = new OsmDataLayer(ds, "", null);
-        Main.getLayerManager().addLayer(layer);
+        MainApplication.getLayerManager().addLayer(layer);
         return layer;
     }
@@ -109,5 +109,5 @@
     public void testPerformSelection() {
         initDataSet();
-        DataSet ds = Main.getLayerManager().getEditDataSet();
+        DataSet ds = MainApplication.getLayerManager().getEditDataSet();
 
         assertEquals(0, ds.getSelected().size());
Index: trunk/test/unit/org/openstreetmap/josm/actions/SimplifyWayActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/actions/SimplifyWayActionTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/actions/SimplifyWayActionTest.java	(revision 12636)
@@ -20,4 +20,5 @@
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
@@ -73,9 +74,9 @@
         OsmDataLayer layer = new OsmDataLayer(ds, "", null);
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             assertTrue(ds.getSelected().isEmpty());
             action.actionPerformed(null);
         } finally {
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
@@ -90,9 +91,9 @@
         OsmDataLayer layer = new OsmDataLayer(ds, "", null);
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             assertEquals(1, ds.getSelected().size());
             action.actionPerformed(null);
         } finally {
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
@@ -109,9 +110,9 @@
         OsmDataLayer layer = new OsmDataLayer(ds, "", null);
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             assertEquals(11, ds.getSelected().size());
             action.actionPerformed(null);
         } finally {
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
Index: trunk/test/unit/org/openstreetmap/josm/actions/SplitWayActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/actions/SplitWayActionTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/actions/SplitWayActionTest.java	(revision 12636)
@@ -24,4 +24,5 @@
 import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
@@ -91,9 +92,9 @@
 
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             action.actionPerformed(null);
         } finally {
             // Ensure we clean the place before leaving, even if test fails.
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
 
Index: trunk/test/unit/org/openstreetmap/josm/actions/UnGlueActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/actions/UnGlueActionTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/actions/UnGlueActionTest.java	(revision 12636)
@@ -13,4 +13,5 @@
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
@@ -52,5 +53,5 @@
         OsmDataLayer layer = new OsmDataLayer(ds, "", null);
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             assertTrue(ds.getSelected().isEmpty());
             assertTrue(ds.allPrimitives().isEmpty());
@@ -58,5 +59,5 @@
             assertTrue(ds.allPrimitives().isEmpty());
         } finally {
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
@@ -73,5 +74,5 @@
         ds.setSelected(n);
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             assertEquals(1, ds.getSelected().size());
             assertEquals(1, ds.allPrimitives().size());
@@ -79,5 +80,5 @@
             assertEquals(1, ds.allPrimitives().size());
         } finally {
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
@@ -100,5 +101,5 @@
         ds.setSelected(n1);
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             assertEquals(1, ds.getSelected().size());
             assertEquals(3, ds.allPrimitives().size());
@@ -106,5 +107,5 @@
             assertEquals(3, ds.allPrimitives().size());
         } finally {
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
@@ -133,5 +134,5 @@
         ds.setSelected(n1);
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             assertEquals(1, ds.getSelected().size());
             assertEquals(5, ds.allPrimitives().size());
@@ -139,5 +140,5 @@
             assertEquals(6, ds.allPrimitives().size());
         } finally {
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
Index: trunk/test/unit/org/openstreetmap/josm/actions/UnJoinNodeWayActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/actions/UnJoinNodeWayActionTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/actions/UnJoinNodeWayActionTest.java	(revision 12636)
@@ -8,9 +8,9 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.EastNorth;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
@@ -75,9 +75,9 @@
         action.setEnabled(true);
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             action.actionPerformed(null);
         } finally {
             // Ensure we clean the place before leaving, even if test fails.
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
 
Index: trunk/test/unit/org/openstreetmap/josm/actions/mapmode/AddNoteActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/actions/mapmode/AddNoteActionTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/actions/mapmode/AddNoteActionTest.java	(revision 12636)
@@ -9,5 +9,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.notes.Note;
 import org.openstreetmap.josm.data.osm.DataSet;
@@ -39,5 +38,5 @@
         OsmDataLayer layer = new OsmDataLayer(new DataSet(), "", null);
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             AddNoteAction mapMode = new AddNoteAction(new NoteData(Collections.<Note>emptyList()));
             MapFrame map = MainApplication.getMap();
@@ -47,5 +46,5 @@
             assertTrue(map.selectMapMode(oldMapMode));
         } finally {
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
Index: trunk/test/unit/org/openstreetmap/josm/actions/mapmode/DeleteActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/actions/mapmode/DeleteActionTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/actions/mapmode/DeleteActionTest.java	(revision 12636)
@@ -7,5 +7,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.actions.mapmode.DeleteAction.DeleteMode;
@@ -37,5 +36,5 @@
         OsmDataLayer layer = new OsmDataLayer(new DataSet(), "", null);
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             DeleteAction mapMode = new DeleteAction();
             MapFrame map = MainApplication.getMap();
@@ -45,5 +44,5 @@
             assertTrue(map.selectMapMode(oldMapMode));
         } finally {
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
Index: trunk/test/unit/org/openstreetmap/josm/actions/mapmode/DrawActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/actions/mapmode/DrawActionTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/actions/mapmode/DrawActionTest.java	(revision 12636)
@@ -55,5 +55,5 @@
         DataSet dataSet = new DataSet();
         OsmDataLayer layer = new OsmDataLayer(dataSet, OsmDataLayer.createNewName(), null);
-        Main.getLayerManager().addLayer(layer);
+        MainApplication.getLayerManager().addLayer(layer);
 
         // fix map view position
@@ -101,5 +101,5 @@
         } finally {
             // Ensure we clean the place before leaving, even if test fails.
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
Index: trunk/test/unit/org/openstreetmap/josm/actions/mapmode/ExtrudeActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/actions/mapmode/ExtrudeActionTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/actions/mapmode/ExtrudeActionTest.java	(revision 12636)
@@ -7,5 +7,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.actions.mapmode.ExtrudeAction.Mode;
@@ -37,5 +36,5 @@
         OsmDataLayer layer = new OsmDataLayer(new DataSet(), "", null);
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             ExtrudeAction mapMode = new ExtrudeAction();
             MapFrame map = MainApplication.getMap();
@@ -45,5 +44,5 @@
             assertTrue(map.selectMapMode(oldMapMode));
         } finally {
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
Index: trunk/test/unit/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyActionTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyActionTest.java	(revision 12636)
@@ -7,5 +7,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.actions.mapmode.ImproveWayAccuracyAction.State;
@@ -37,5 +36,5 @@
         OsmDataLayer layer = new OsmDataLayer(new DataSet(), "", null);
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             ImproveWayAccuracyAction mapMode = new ImproveWayAccuracyAction();
             MapFrame map = MainApplication.getMap();
@@ -45,5 +44,5 @@
             assertTrue(map.selectMapMode(oldMapMode));
         } finally {
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
Index: trunk/test/unit/org/openstreetmap/josm/actions/mapmode/MapViewMock.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/actions/mapmode/MapViewMock.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/actions/mapmode/MapViewMock.java	(revision 12636)
@@ -6,6 +6,6 @@
 import java.awt.geom.Point2D;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.MapView;
 import org.openstreetmap.josm.gui.layer.MainLayerManager;
@@ -13,5 +13,5 @@
 class MapViewMock extends MapView {
     MapViewMock() {
-        this(Main.getLayerManager());
+        this(MainApplication.getLayerManager());
     }
 
Index: trunk/test/unit/org/openstreetmap/josm/actions/mapmode/ParallelWayActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/actions/mapmode/ParallelWayActionTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/actions/mapmode/ParallelWayActionTest.java	(revision 12636)
@@ -7,5 +7,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.actions.mapmode.ParallelWayAction.Mode;
@@ -38,5 +37,5 @@
         OsmDataLayer layer = new OsmDataLayer(new DataSet(), "", null);
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             MapFrame map = MainApplication.getMap();
             ParallelWayAction mapMode = new ParallelWayAction(map);
@@ -46,5 +45,5 @@
             assertTrue(map.selectMapMode(oldMapMode));
         } finally {
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
Index: trunk/test/unit/org/openstreetmap/josm/actions/mapmode/PlayHeadDragModeTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/actions/mapmode/PlayHeadDragModeTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/actions/mapmode/PlayHeadDragModeTest.java	(revision 12636)
@@ -7,5 +7,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.gui.MainApplication;
@@ -36,5 +35,5 @@
         OsmDataLayer layer = new OsmDataLayer(new DataSet(), "", null);
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             PlayHeadDragMode mapMode = new PlayHeadDragMode(PlayHeadMarker.create());
             MapFrame map = MainApplication.getMap();
@@ -44,5 +43,5 @@
             assertTrue(map.selectMapMode(oldMapMode));
         } finally {
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
Index: trunk/test/unit/org/openstreetmap/josm/actions/mapmode/SelectActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/actions/mapmode/SelectActionTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/actions/mapmode/SelectActionTest.java	(revision 12636)
@@ -89,5 +89,5 @@
 
         Main.pref.put("edit.initial-move-delay", "0");
-        Main.getLayerManager().addLayer(layer);
+        MainApplication.getLayerManager().addLayer(layer);
         try {
             MapFrame map = MainApplication.getMap();
@@ -145,5 +145,5 @@
         } finally {
             // Ensure we clean the place before leaving, even if test fails.
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
Index: trunk/test/unit/org/openstreetmap/josm/command/AddCommandTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/command/AddCommandTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/command/AddCommandTest.java	(revision 12636)
@@ -9,5 +9,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.DataSet;
@@ -17,4 +16,5 @@
 import org.openstreetmap.josm.data.osm.User;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
@@ -42,5 +42,5 @@
     public void testAdd() {
         OsmDataLayer layer1 = new OsmDataLayer(new DataSet(), "l1", null);
-        Main.getLayerManager().addLayer(layer1);
+        MainApplication.getLayerManager().addLayer(layer1);
         assertArrayEquals(new Object[0], layer1.data.allPrimitives().toArray());
 
@@ -61,6 +61,6 @@
         OsmDataLayer layer2 = new OsmDataLayer(new DataSet(), "l1", null);
 
-        Main.getLayerManager().addLayer(layer1);
-        Main.getLayerManager().addLayer(layer2);
+        MainApplication.getLayerManager().addLayer(layer1);
+        MainApplication.getLayerManager().addLayer(layer2);
 
         Node osm = new Node(LatLon.ZERO);
@@ -77,5 +77,5 @@
     public void testUndo() {
         OsmDataLayer layer1 = new OsmDataLayer(new DataSet(), "l1", null);
-        Main.getLayerManager().addLayer(layer1);
+        MainApplication.getLayerManager().addLayer(layer1);
         Node osm = new Node(LatLon.ZERO);
         layer1.data.addPrimitive(osm);
Index: trunk/test/unit/org/openstreetmap/josm/command/AddPrimitivesCommandTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/command/AddPrimitivesCommandTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/command/AddPrimitivesCommandTest.java	(revision 12636)
@@ -14,5 +14,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.DataSet;
@@ -24,4 +23,5 @@
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.osm.WayData;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
@@ -49,5 +49,5 @@
     public void testAdd() {
         OsmDataLayer layer1 = new OsmDataLayer(new DataSet(), "l1", null);
-        Main.getLayerManager().addLayer(layer1);
+        MainApplication.getLayerManager().addLayer(layer1);
 
         List<PrimitiveData> testData = createTestData();
@@ -64,5 +64,5 @@
     public void testAddSetSelection() {
         OsmDataLayer layer1 = new OsmDataLayer(new DataSet(), "l1", null);
-        Main.getLayerManager().addLayer(layer1);
+        MainApplication.getLayerManager().addLayer(layer1);
 
         List<PrimitiveData> testData = createTestData();
@@ -83,6 +83,6 @@
         OsmDataLayer layer2 = new OsmDataLayer(new DataSet(), "l1", null);
 
-        Main.getLayerManager().addLayer(layer1);
-        Main.getLayerManager().addLayer(layer2);
+        MainApplication.getLayerManager().addLayer(layer1);
+        MainApplication.getLayerManager().addLayer(layer2);
 
         List<PrimitiveData> testData = createTestData();
@@ -102,5 +102,5 @@
     public void testAddIgnoresExisting() {
         OsmDataLayer layer1 = new OsmDataLayer(new DataSet(), "l1", null);
-        Main.getLayerManager().addLayer(layer1);
+        MainApplication.getLayerManager().addLayer(layer1);
 
         List<PrimitiveData> testData = createTestData();
@@ -122,5 +122,5 @@
     public void testDescription() {
         OsmDataLayer layer1 = new OsmDataLayer(new DataSet(), "l1", null);
-        Main.getLayerManager().addLayer(layer1);
+        MainApplication.getLayerManager().addLayer(layer1);
 
         List<PrimitiveData> testData = createTestData();
@@ -147,5 +147,5 @@
     public void testUndo() {
         OsmDataLayer layer1 = new OsmDataLayer(new DataSet(), "l1", null);
-        Main.getLayerManager().addLayer(layer1);
+        MainApplication.getLayerManager().addLayer(layer1);
 
         List<PrimitiveData> testData = createTestData();
@@ -182,5 +182,5 @@
     public void testUndoIgnoresExisting() {
         OsmDataLayer layer1 = new OsmDataLayer(new DataSet(), "l1", null);
-        Main.getLayerManager().addLayer(layer1);
+        MainApplication.getLayerManager().addLayer(layer1);
 
         List<PrimitiveData> testData = createTestData();
@@ -220,5 +220,5 @@
     public void testParticipatingPrimitives() {
         OsmDataLayer layer1 = new OsmDataLayer(new DataSet(), "l1", null);
-        Main.getLayerManager().addLayer(layer1);
+        MainApplication.getLayerManager().addLayer(layer1);
 
         List<PrimitiveData> testData = createTestData();
Index: trunk/test/unit/org/openstreetmap/josm/command/CommandTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/command/CommandTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/command/CommandTest.java	(revision 12636)
@@ -12,5 +12,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.DataSet;
@@ -21,4 +20,5 @@
 import org.openstreetmap.josm.data.osm.User;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
@@ -141,5 +141,5 @@
         public CommandTestData() {
             layer = new OsmDataLayer(new DataSet(), "layer", null);
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
 
             existingNode = createNode(5);
Index: trunk/test/unit/org/openstreetmap/josm/command/conflict/ConflictAddCommandTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/command/conflict/ConflictAddCommandTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/command/conflict/ConflictAddCommandTest.java	(revision 12636)
@@ -10,5 +10,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.conflict.Conflict;
 import org.openstreetmap.josm.data.osm.DataSet;
@@ -16,4 +15,5 @@
 import org.openstreetmap.josm.data.osm.User;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
@@ -43,5 +43,5 @@
     public void setUp() {
         layer = new OsmDataLayer(new DataSet(), null, null);
-        Main.getLayerManager().addLayer(layer);
+        MainApplication.getLayerManager().addLayer(layer);
     }
 
@@ -51,5 +51,5 @@
     @After
     public void tearDown() {
-        Main.getLayerManager().removeLayer(layer);
+        MainApplication.getLayerManager().removeLayer(layer);
     }
 
@@ -59,5 +59,5 @@
     @Test
     public void testExecuteUndoCommand() {
-        OsmDataLayer layer = Main.getLayerManager().getEditLayer();
+        OsmDataLayer layer = MainApplication.getLayerManager().getEditLayer();
         Conflict<Node> conflict = new Conflict<>(new Node(), new Node());
         ConflictAddCommand cmd = new ConflictAddCommand(layer, conflict);
@@ -75,5 +75,5 @@
     @Test
     public void testGetDescriptionIcon() {
-        OsmDataLayer layer = Main.getLayerManager().getEditLayer();
+        OsmDataLayer layer = MainApplication.getLayerManager().getEditLayer();
         Conflict<Node> conflict = new Conflict<>(new Node(), new Node());
         assertNotNull(new ConflictAddCommand(layer, conflict).getDescriptionIcon());
Index: trunk/test/unit/org/openstreetmap/josm/command/conflict/CoordinateConflictResolveCommandTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/command/conflict/CoordinateConflictResolveCommandTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/command/conflict/CoordinateConflictResolveCommandTest.java	(revision 12636)
@@ -10,5 +10,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.conflict.Conflict;
 import org.openstreetmap.josm.data.coor.LatLon;
@@ -17,4 +16,5 @@
 import org.openstreetmap.josm.data.osm.User;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.conflict.pair.MergeDecisionType;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
@@ -45,5 +45,5 @@
     public void setUp() {
         layer = new OsmDataLayer(new DataSet(), null, null);
-        Main.getLayerManager().addLayer(layer);
+        MainApplication.getLayerManager().addLayer(layer);
     }
 
@@ -53,5 +53,5 @@
     @After
     public void tearDown() {
-        Main.getLayerManager().removeLayer(layer);
+        MainApplication.getLayerManager().removeLayer(layer);
     }
 
Index: trunk/test/unit/org/openstreetmap/josm/data/osm/event/SelectionEventManagerTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/data/osm/event/SelectionEventManagerTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/data/osm/event/SelectionEventManagerTest.java	(revision 12636)
@@ -11,5 +11,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.command.CommandTest.CommandTestDataWithRelation;
 import org.openstreetmap.josm.data.SelectionChangedListener;
@@ -17,4 +16,5 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.event.DatasetEventManager.FireMode;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
@@ -61,6 +61,6 @@
         CommandTestDataWithRelation testData1 = new CommandTestDataWithRelation();
         CommandTestDataWithRelation testData2 = new CommandTestDataWithRelation();
-        Main.getLayerManager().setActiveLayer(testData1.layer);
-        assertEquals(testData1.layer, Main.getLayerManager().getEditLayer());
+        MainApplication.getLayerManager().setActiveLayer(testData1.layer);
+        assertEquals(testData1.layer, MainApplication.getLayerManager().getEditLayer());
 
         SelectionListener listener1 = new SelectionListener("IMMEDIATELY");
@@ -87,5 +87,5 @@
 
         // changing to other dataset should trigger a empty selection
-        Main.getLayerManager().setActiveLayer(testData2.layer);
+        MainApplication.getLayerManager().setActiveLayer(testData2.layer);
         assertSelectionEquals(listeners, new HashSet<OsmPrimitive>(Arrays.asList()));
 
Index: trunk/test/unit/org/openstreetmap/josm/gui/MainApplicationTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/MainApplicationTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/gui/MainApplicationTest.java	(revision 12636)
@@ -21,5 +21,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.data.Version;
@@ -148,5 +147,5 @@
 
     private static void doTestPostConstructorProcessCmdLine(String download, String downloadGps, boolean gpx) {
-        assertNull(Main.getLayerManager().getEditDataSet());
+        assertNull(MainApplication.getLayerManager().getEditDataSet());
         for (Future<?> f : MainApplication.postConstructorProcessCmdLine(new ProgramArguments(new String[]{
                 "--download=" + download,
@@ -159,12 +158,12 @@
             }
         }
-        DataSet ds = Main.getLayerManager().getEditDataSet();
+        DataSet ds = MainApplication.getLayerManager().getEditDataSet();
         assertNotNull(ds);
         assertFalse(ds.getSelected().isEmpty());
-        Main.getLayerManager().removeLayer(Main.getLayerManager().getEditLayer());
+        MainApplication.getLayerManager().removeLayer(MainApplication.getLayerManager().getEditLayer());
         if (gpx) {
-            List<GpxLayer> gpxLayers = Main.getLayerManager().getLayersOfType(GpxLayer.class);
+            List<GpxLayer> gpxLayers = MainApplication.getLayerManager().getLayersOfType(GpxLayer.class);
             assertEquals(1, gpxLayers.size());
-            Main.getLayerManager().removeLayer(gpxLayers.iterator().next());
+            MainApplication.getLayerManager().removeLayer(gpxLayers.iterator().next());
         }
     }
Index: trunk/test/unit/org/openstreetmap/josm/gui/MapScalerTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/MapScalerTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/gui/MapScalerTest.java	(revision 12636)
@@ -10,5 +10,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.data.osm.DataSet;
@@ -36,5 +35,5 @@
     @Test
     public void testMapScaler() {
-        Main.getLayerManager().addLayer(new OsmDataLayer(new DataSet(), "", null));
+        MainApplication.getLayerManager().addLayer(new OsmDataLayer(new DataSet(), "", null));
         assertEquals(Color.WHITE, MapScaler.getColor());
         MapScaler ms = new MapScaler(MainApplication.getMap().mapView);
Index: trunk/test/unit/org/openstreetmap/josm/gui/dialogs/CommandStackDialogTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/dialogs/CommandStackDialogTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/gui/dialogs/CommandStackDialogTest.java	(revision 12636)
@@ -48,5 +48,5 @@
     public void testCommandStackDialogNotEmpty() {
         OsmDataLayer layer = new OsmDataLayer(new DataSet(), "", null);
-        Main.getLayerManager().addLayer(layer);
+        MainApplication.getLayerManager().addLayer(layer);
         try {
             Command cmd1 = TestUtils.newCommand();
@@ -69,5 +69,5 @@
         } finally {
             Main.main.undoRedo.clean();
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
Index: trunk/test/unit/org/openstreetmap/josm/gui/dialogs/ConflictDialogTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/dialogs/ConflictDialogTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/gui/dialogs/ConflictDialogTest.java	(revision 12636)
@@ -10,5 +10,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.DataSet;
@@ -57,5 +56,5 @@
     @Test
     public void testConflictPainter() {
-        Main.getLayerManager().addLayer(new OsmDataLayer(new DataSet(), "", null));
+        MainApplication.getLayerManager().addLayer(new OsmDataLayer(new DataSet(), "", null));
         ConflictPainter cp = new ConflictPainter(MainApplication.getMap().mapView,
                 new BufferedImage(800, 600, BufferedImage.TYPE_3BYTE_BGR).createGraphics());
Index: trunk/test/unit/org/openstreetmap/josm/gui/dialogs/InspectPrimitiveDialogTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/dialogs/InspectPrimitiveDialogTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/gui/dialogs/InspectPrimitiveDialogTest.java	(revision 12636)
@@ -11,9 +11,9 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.User;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
@@ -113,5 +113,5 @@
 
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             assertEquals("", InspectPrimitiveDialog.buildMapPaintText());
             Node n = new Node(LatLon.ZERO);
@@ -128,5 +128,5 @@
                     InspectPrimitiveDialog.buildMapPaintText().replaceAll("@(\\p{XDigit})+", ""));
         } finally {
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
Index: trunk/test/unit/org/openstreetmap/josm/gui/dialogs/MapPaintDialogTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/dialogs/MapPaintDialogTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/gui/dialogs/MapPaintDialogTest.java	(revision 12636)
@@ -4,5 +4,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.gui.MainApplication;
@@ -29,5 +28,5 @@
     @Test
     public void testInfoAction() {
-        Main.getLayerManager().addLayer(new OsmDataLayer(new DataSet(), "", null));
+        MainApplication.getLayerManager().addLayer(new OsmDataLayer(new DataSet(), "", null));
         MainApplication.getMap().mapPaintDialog.new InfoAction().actionPerformed(null);
     }
Index: trunk/test/unit/org/openstreetmap/josm/gui/dialogs/layer/DuplicateActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/dialogs/layer/DuplicateActionTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/gui/dialogs/layer/DuplicateActionTest.java	(revision 12636)
@@ -11,6 +11,6 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.TestUtils;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.io.OsmReader;
@@ -38,9 +38,9 @@
         try (InputStream is = TestUtils.getRegressionDataStream(4539, "josm_error_#4539.osm.zip")) {
             OsmDataLayer layer = new OsmDataLayer(OsmReader.parseDataSet(is, null), null, null);
-            OsmDataLayer editLayer = Main.getLayerManager().getEditLayer();
+            OsmDataLayer editLayer = MainApplication.getLayerManager().getEditLayer();
             assertNull(editLayer);
             try {
                 new DuplicateAction(layer, null).actionPerformed(null);
-                editLayer = Main.getLayerManager().getEditLayer();
+                editLayer = MainApplication.getLayerManager().getEditLayer();
                 assertNotNull(editLayer);
                 assertFalse(layer.equals(editLayer));
@@ -51,5 +51,5 @@
                 // Ensure we clean the place before leaving, even if test fails.
                 if (editLayer != null) {
-                    Main.getLayerManager().removeLayer(editLayer);
+                    MainApplication.getLayerManager().removeLayer(editLayer);
                 }
             }
Index: trunk/test/unit/org/openstreetmap/josm/gui/dialogs/layer/LayerVisibilityActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/dialogs/layer/LayerVisibilityActionTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/gui/dialogs/layer/LayerVisibilityActionTest.java	(revision 12636)
@@ -8,5 +8,5 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
 import org.openstreetmap.josm.gui.dialogs.LayerListDialog.LayerListModel;
@@ -34,5 +34,5 @@
     public void testLayerVisibilityAction() {
         TMSLayer layer = TMSLayerTest.createTmsLayer();
-        LayerListModel model = new LayerListDialog(Main.getLayerManager()) {
+        LayerListModel model = new LayerListDialog(MainApplication.getLayerManager()) {
             @Override
             protected void registerInWindowMenu() {
@@ -44,5 +44,5 @@
         assertFalse(action.isEnabled());
 
-        Main.getLayerManager().addLayer(layer);
+        MainApplication.getLayerManager().addLayer(layer);
         model.setSelectedLayer(layer);
         action.updateEnabledState();
Index: trunk/test/unit/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableTest.java	(revision 12636)
@@ -10,5 +10,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.DataSet;
@@ -16,4 +15,5 @@
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.RelationMember;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.dialogs.relation.SelectionTable.DoubleClickAdapter;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
@@ -50,5 +50,5 @@
         OsmDataLayer layer = new OsmDataLayer(ds, "", null);
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             // Constructs models and table
             MemberTableModel memberTableModel = new MemberTableModel(r, layer, null);
@@ -85,5 +85,5 @@
             }
         } finally {
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
Index: trunk/test/unit/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayerTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayerTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayerTest.java	(revision 12636)
@@ -27,8 +27,8 @@
 import org.openstreetmap.gui.jmapviewer.tilesources.AbstractTMSTileSource;
 import org.openstreetmap.gui.jmapviewer.tilesources.TileSourceInfo;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.imagery.ImageryInfo;
 import org.openstreetmap.josm.data.imagery.TileLoaderFactory;
 import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.imagery.ImageryFilterSettings;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
@@ -149,5 +149,5 @@
     @Before
     public void setUp() {
-        Main.getLayerManager().addLayer(new OsmDataLayer(new DataSet(), "", null));
+        MainApplication.getLayerManager().addLayer(new OsmDataLayer(new DataSet(), "", null));
         testLayer = new TileSourceStubLayer();
         testLayer.addInvalidationListener(l -> invalidated.set(true));
Index: trunk/test/unit/org/openstreetmap/josm/gui/layer/AutosaveTaskTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/layer/AutosaveTaskTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/gui/layer/AutosaveTaskTest.java	(revision 12636)
@@ -22,8 +22,8 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.AutosaveTask.AutosaveLayerInfo;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
@@ -130,5 +130,5 @@
     public void testAutosaveIgnoresUnmodifiedLayer() {
         OsmDataLayer layer = new OsmDataLayer(new DataSet(), "OsmData", null);
-        Main.getLayerManager().addLayer(layer);
+        MainApplication.getLayerManager().addLayer(layer);
         try {
             task.schedule();
@@ -166,5 +166,5 @@
         DataSet data = new DataSet();
         OsmDataLayer layer = new OsmDataLayer(data, "OsmData", null);
-        Main.getLayerManager().addLayer(layer);
+        MainApplication.getLayerManager().addLayer(layer);
         try {
             task.schedule();
@@ -206,5 +206,5 @@
         DataSet data1 = new DataSet();
         OsmDataLayer layer1 = new OsmDataLayer(data1, "OsmData", null);
-        Main.getLayerManager().addLayer(layer1);
+        MainApplication.getLayerManager().addLayer(layer1);
 
         DataSet data2 = new DataSet();
@@ -215,5 +215,5 @@
             assertEquals(0, countFiles());
             // also test adding layer later
-            Main.getLayerManager().addLayer(layer2);
+            MainApplication.getLayerManager().addLayer(layer2);
 
             data1.addPrimitive(new Node(new LatLon(10, 10)));
Index: trunk/test/unit/org/openstreetmap/josm/gui/layer/GpxLayerTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/layer/GpxLayerTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/gui/layer/GpxLayerTest.java	(revision 12636)
@@ -17,5 +17,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.data.gpx.GpxData;
@@ -210,9 +209,9 @@
         GpxLayer layer = getMinimalGpxLayer();
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             assertTrue(layer.getMenuEntries().length > 0);
             layer.paint(TestUtils.newGraphics(), MainApplication.getMap().mapView, layer.data.getMetaBounds());
         } finally {
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
Index: trunk/test/unit/org/openstreetmap/josm/gui/layer/MarkerLayerTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/layer/MarkerLayerTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/gui/layer/MarkerLayerTest.java	(revision 12636)
@@ -7,5 +7,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.gpx.GpxData;
 import org.openstreetmap.josm.data.osm.DataSet;
@@ -35,11 +34,11 @@
     public void testPlayHeadMarker() {
         try {
-            Main.getLayerManager().addLayer(new OsmDataLayer(new DataSet(), "", null));
+            MainApplication.getLayerManager().addLayer(new OsmDataLayer(new DataSet(), "", null));
             MapFrame map = MainApplication.getMap();
             MarkerLayer layer = new MarkerLayer(new GpxData(), null, null, null);
             assertNull(map.mapView.playHeadMarker);
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             assertNotNull(map.mapView.playHeadMarker);
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         } finally {
             if (MainApplication.isDisplayingMapView()) {
Index: trunk/test/unit/org/openstreetmap/josm/gui/layer/OsmDataLayerTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/layer/OsmDataLayerTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/gui/layer/OsmDataLayerTest.java	(revision 12636)
@@ -12,5 +12,4 @@
 import org.junit.Test;
 import org.openstreetmap.josm.JOSMFixture;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.actions.ExpertToggleAction;
@@ -45,5 +44,5 @@
         OsmDataLayer layer = new OsmDataLayer(ds, "", null);
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             int n = OsmDataLayer.PROPERTY_RECENT_RELATIONS_NUMBER.get();
             assertTrue(n > 0);
@@ -61,5 +60,5 @@
             assertTrue(layer.getRecentRelations().isEmpty());
         } finally {
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
@@ -135,9 +134,9 @@
         OsmDataLayer layer = new OsmDataLayer(ds, "", null);
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             assertTrue(layer.getMenuEntries().length > 0);
             layer.paint(TestUtils.newGraphics(), MainApplication.getMap().mapView, new Bounds(LatLon.ZERO));
         } finally {
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
Index: trunk/test/unit/org/openstreetmap/josm/gui/layer/TMSLayerTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/layer/TMSLayerTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/gui/layer/TMSLayerTest.java	(revision 12636)
@@ -6,7 +6,7 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.imagery.ImageryInfo;
 import org.openstreetmap.josm.data.imagery.ImageryInfo.ImageryType;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
 
@@ -51,9 +51,9 @@
     private static void test(ImageryType expected, TMSLayer layer) {
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             assertEquals(expected, layer.getInfo().getImageryType());
         } finally {
             // Ensure we clean the place before leaving, even if test fails.
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
Index: trunk/test/unit/org/openstreetmap/josm/gui/layer/ValidatorLayerTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/layer/ValidatorLayerTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/gui/layer/ValidatorLayerTest.java	(revision 12636)
@@ -10,5 +10,5 @@
 import org.junit.Test;
 import org.openstreetmap.josm.JOSMFixture;
-import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.MainApplication;
 
 /**
@@ -33,5 +33,5 @@
         try {
             layer = new ValidatorLayer();
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             assertFalse(layer.isMergable(null));
             assertNotNull(layer.getIcon());
@@ -42,5 +42,5 @@
             // Ensure we clean the place before leaving, even if test fails.
             if (layer != null) {
-                Main.getLayerManager().removeLayer(layer);
+                MainApplication.getLayerManager().removeLayer(layer);
             }
         }
Index: trunk/test/unit/org/openstreetmap/josm/gui/layer/WMSLayerTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/layer/WMSLayerTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/gui/layer/WMSLayerTest.java	(revision 12636)
@@ -6,7 +6,7 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.imagery.ImageryInfo;
 import org.openstreetmap.josm.data.imagery.ImageryInfo.ImageryType;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
 
@@ -31,10 +31,10 @@
     public void testWMSLayer() {
         WMSLayer wms = new WMSLayer(new ImageryInfo("test wms", "http://localhost"));
-        Main.getLayerManager().addLayer(wms);
+        MainApplication.getLayerManager().addLayer(wms);
         try {
             assertEquals(ImageryType.WMS, wms.getInfo().getImageryType());
         } finally {
             // Ensure we clean the place before leaving, even if test fails.
-            Main.getLayerManager().removeLayer(wms);
+            MainApplication.getLayerManager().removeLayer(wms);
         }
     }
Index: trunk/test/unit/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayerTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayerTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayerTest.java	(revision 12636)
@@ -12,7 +12,7 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.GpxLayer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
@@ -45,11 +45,11 @@
             assertTrue(reader.parse(true));
             GpxLayer gpxLayer = new GpxLayer(reader.getGpxData());
-            Main.getLayerManager().addLayer(gpxLayer);
-            assertEquals(1, Main.getLayerManager().getLayers().size());
+            MainApplication.getLayerManager().addLayer(gpxLayer);
+            assertEquals(1, MainApplication.getLayerManager().getLayers().size());
             new Loader(
                     Collections.singleton(new File(TestUtils.getRegressionDataFile(12255, "G0016941.JPG"))),
                     gpxLayer).run();
-            assertEquals(2, Main.getLayerManager().getLayers().size());
-            GeoImageLayer layer = Main.getLayerManager().getLayersOfType(GeoImageLayer.class).iterator().next();
+            assertEquals(2, MainApplication.getLayerManager().getLayers().size());
+            GeoImageLayer layer = MainApplication.getLayerManager().getLayersOfType(GeoImageLayer.class).iterator().next();
             assertEquals(gpxLayer, layer.getGpxLayer());
             List<ImageEntry> images = layer.getImages();
Index: trunk/test/unit/org/openstreetmap/josm/gui/layer/gpx/DownloadAlongTrackActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/layer/gpx/DownloadAlongTrackActionTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/gui/layer/gpx/DownloadAlongTrackActionTest.java	(revision 12636)
@@ -7,8 +7,8 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.data.gpx.GpxData;
 import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
@@ -33,5 +33,5 @@
         final OsmDataLayer layer = new OsmDataLayer(new DataSet(), DownloadAlongTrackActionTest.class.getName(), null);
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             // Perform action
             final GpxData gpx = GpxReaderTest.parseGpxData(TestUtils.getTestDataRoot() + file);
@@ -39,5 +39,5 @@
         } finally {
             // Ensure we clean the place before leaving, even if test fails.
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
Index: trunk/test/unit/org/openstreetmap/josm/gui/layer/gpx/DownloadWmsAlongTrackActionTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/layer/gpx/DownloadWmsAlongTrackActionTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/gui/layer/gpx/DownloadWmsAlongTrackActionTest.java	(revision 12636)
@@ -9,7 +9,7 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.gpx.GpxData;
 import org.openstreetmap.josm.data.imagery.ImageryInfo;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.GpxLayerTest;
 import org.openstreetmap.josm.gui.layer.TMSLayer;
@@ -48,5 +48,5 @@
         TMSLayer layer = new TMSLayer(new ImageryInfo("OSM TMS", "https://a.tile.openstreetmap.org/{zoom}/{x}/{y}.png", "tms", null, null));
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             TMSLayer.getCache().clear();
             assertTrue(TMSLayer.getCache().getMatching(".*").isEmpty());
@@ -59,5 +59,5 @@
         } finally {
             // Ensure we clean the place before leaving, even if test fails.
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
Index: trunk/test/unit/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayerTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayerTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayerTest.java	(revision 12636)
@@ -18,4 +18,5 @@
 import org.openstreetmap.josm.data.gpx.GpxLink;
 import org.openstreetmap.josm.data.gpx.WayPoint;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
 
@@ -49,5 +50,5 @@
         assertEquals(Color.magenta, MarkerLayer.getGenericColor());
         MarkerLayer layer = new MarkerLayer(new GpxData(), "foo", null, null);
-        Main.getLayerManager().addLayer(layer);
+        MainApplication.getLayerManager().addLayer(layer);
 
         assertEquals("foo", layer.getName());
Index: trunk/test/unit/org/openstreetmap/josm/io/NoteImporterTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/io/NoteImporterTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/io/NoteImporterTest.java	(revision 12636)
@@ -9,5 +9,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.gui.MainApplication;
@@ -30,5 +29,5 @@
     @Test
     public void testTicket12531() {
-        Main.getLayerManager().resetState();
+        MainApplication.getLayerManager().resetState();
         assertNull(MainApplication.getMap());
         assertTrue(new NoteImporter().importDataHandleExceptions(
Index: trunk/test/unit/org/openstreetmap/josm/io/remotecontrol/handler/AddNodeHandlerTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/io/remotecontrol/handler/AddNodeHandlerTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/io/remotecontrol/handler/AddNodeHandlerTest.java	(revision 12636)
@@ -5,6 +5,6 @@
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.io.remotecontrol.handler.RequestHandler.RequestHandlerBadRequestException;
@@ -59,8 +59,8 @@
         OsmDataLayer layer = new OsmDataLayer(new DataSet(), "", null);
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             newHandler(null).handle();
         } finally {
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
@@ -96,8 +96,8 @@
         OsmDataLayer layer = new OsmDataLayer(new DataSet(), "", null);
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             newHandler("https://localhost?lat=0&lon=0").handle();
         } finally {
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
Index: trunk/test/unit/org/openstreetmap/josm/io/remotecontrol/handler/AddWayHandlerTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/io/remotecontrol/handler/AddWayHandlerTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/io/remotecontrol/handler/AddWayHandlerTest.java	(revision 12636)
@@ -5,6 +5,6 @@
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.io.remotecontrol.handler.RequestHandler.RequestHandlerBadRequestException;
@@ -59,8 +59,8 @@
         OsmDataLayer layer = new OsmDataLayer(new DataSet(), "", null);
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             newHandler(null).handle();
         } finally {
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
@@ -96,8 +96,8 @@
         OsmDataLayer layer = new OsmDataLayer(new DataSet(), "", null);
         try {
-            Main.getLayerManager().addLayer(layer);
+            MainApplication.getLayerManager().addLayer(layer);
             newHandler("https://localhost?way=0,0;1,1").handle();
         } finally {
-            Main.getLayerManager().removeLayer(layer);
+            MainApplication.getLayerManager().removeLayer(layer);
         }
     }
Index: trunk/test/unit/org/openstreetmap/josm/io/remotecontrol/handler/ImportHandlerTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/io/remotecontrol/handler/ImportHandlerTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/io/remotecontrol/handler/ImportHandlerTest.java	(revision 12636)
@@ -9,6 +9,6 @@
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.TestUtils;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.io.remotecontrol.handler.RequestHandler.RequestHandlerBadRequestException;
@@ -96,6 +96,6 @@
             newHandler("https://localhost?url=" + Utils.encodeUrl(url)).handle();
         } finally {
-            for (OsmDataLayer layer : Main.getLayerManager().getLayersOfType(OsmDataLayer.class)) {
-                Main.getLayerManager().removeLayer(layer);
+            for (OsmDataLayer layer : MainApplication.getLayerManager().getLayersOfType(OsmDataLayer.class)) {
+                MainApplication.getLayerManager().removeLayer(layer);
             }
         }
Index: trunk/test/unit/org/openstreetmap/josm/io/session/SessionReaderTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/io/session/SessionReaderTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/io/session/SessionReaderTest.java	(revision 12636)
@@ -12,5 +12,4 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.gui.MainApplication;
@@ -142,6 +141,6 @@
     public void testReadNotes() throws IOException, IllegalDataException {
         if (MainApplication.isDisplayingMapView()) {
-            for (NoteLayer nl : Main.getLayerManager().getLayersOfType(NoteLayer.class)) {
-                Main.getLayerManager().removeLayer(nl);
+            for (NoteLayer nl : MainApplication.getLayerManager().getLayersOfType(NoteLayer.class)) {
+                MainApplication.getLayerManager().removeLayer(nl);
             }
         }
Index: trunk/test/unit/org/openstreetmap/josm/io/session/SessionWriterTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/io/session/SessionWriterTest.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/io/session/SessionWriterTest.java	(revision 12636)
@@ -21,4 +21,5 @@
 import org.openstreetmap.josm.data.notes.Note;
 import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.GpxLayer;
 import org.openstreetmap.josm.gui.layer.ImageryLayer;
@@ -95,5 +96,5 @@
     @Before
     public void setUp() {
-        Main.getLayerManager().addLayer(createOsmLayer());
+        MainApplication.getLayerManager().addLayer(createOsmLayer());
     }
 
Index: trunk/test/unit/org/openstreetmap/josm/plugins/PluginHandlerTestIT.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/plugins/PluginHandlerTestIT.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/plugins/PluginHandlerTestIT.java	(revision 12636)
@@ -26,4 +26,5 @@
 import org.openstreetmap.josm.data.gpx.GpxData;
 import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.GpxLayer;
 import org.openstreetmap.josm.gui.layer.Layer;
@@ -98,11 +99,11 @@
         for (int i = 0; i < 2; i++) {
             OsmDataLayer layer = new OsmDataLayer(new DataSet(), "Layer "+i, null);
-            testPlugin(Main.getLayerManager()::addLayer, layer, layerExceptions, loadedPlugins);
-            testPlugin(Main.getLayerManager()::removeLayer, layer, layerExceptions, loadedPlugins);
+            testPlugin(MainApplication.getLayerManager()::addLayer, layer, layerExceptions, loadedPlugins);
+            testPlugin(MainApplication.getLayerManager()::removeLayer, layer, layerExceptions, loadedPlugins);
         }
         for (int i = 0; i < 2; i++) {
             GpxLayer layer = new GpxLayer(new GpxData());
-            testPlugin(Main.getLayerManager()::addLayer, layer, layerExceptions, loadedPlugins);
-            testPlugin(Main.getLayerManager()::removeLayer, layer, layerExceptions, loadedPlugins);
+            testPlugin(MainApplication.getLayerManager()::addLayer, layer, layerExceptions, loadedPlugins);
+            testPlugin(MainApplication.getLayerManager()::removeLayer, layer, layerExceptions, loadedPlugins);
         }
 
Index: trunk/test/unit/org/openstreetmap/josm/testutils/JOSMTestRules.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/testutils/JOSMTestRules.java	(revision 12635)
+++ trunk/test/unit/org/openstreetmap/josm/testutils/JOSMTestRules.java	(revision 12636)
@@ -376,5 +376,5 @@
         // Get the instance before cleaning - this ensures that it is initialized.
         SelectionEventManager eventManager = SelectionEventManager.getInstance();
-        Main.getLayerManager().resetState();
+        MainApplication.getLayerManager().resetState();
         eventManager.resetState();
     }
