Index: applications/editors/josm/plugins/indoor_sweepline/build.xml
===================================================================
--- applications/editors/josm/plugins/indoor_sweepline/build.xml	(revision 33827)
+++ applications/editors/josm/plugins/indoor_sweepline/build.xml	(revision 33828)
@@ -5,5 +5,5 @@
     <property name="commit.message" value="Commit message"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="10580"/>
+    <property name="plugin.main.version" value="12643"/>
 
     <property name="plugin.author" value="Roland M. Olbricht"/>
Index: applications/editors/josm/plugins/indoor_sweepline/src/indoor_sweepline/Beam.java
===================================================================
--- applications/editors/josm/plugins/indoor_sweepline/src/indoor_sweepline/Beam.java	(revision 33827)
+++ applications/editors/josm/plugins/indoor_sweepline/src/indoor_sweepline/Beam.java	(revision 33828)
@@ -152,5 +152,5 @@
     }
 
-    private class StripPosition {
+    private static class StripPosition {
         StripPosition(int nodeIndex, double offset) {
             this.nodeIndex = nodeIndex;
Index: applications/editors/josm/plugins/indoor_sweepline/src/indoor_sweepline/IndoorSweepline.java
===================================================================
--- applications/editors/josm/plugins/indoor_sweepline/src/indoor_sweepline/IndoorSweepline.java	(revision 33827)
+++ applications/editors/josm/plugins/indoor_sweepline/src/indoor_sweepline/IndoorSweepline.java	(revision 33828)
@@ -5,5 +5,5 @@
 import javax.swing.JMenuItem;
 
-import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.plugins.Plugin;
 import org.openstreetmap.josm.plugins.PluginInformation;
@@ -21,5 +21,5 @@
 
     public static void refreshMenu() {
-        JMenu menu = Main.main.menu.moreToolsMenu;
+        JMenu menu = MainApplication.getMenu().moreToolsMenu;
         if (menu.isVisible())
             menu.addSeparator();
Index: applications/editors/josm/plugins/indoor_sweepline/src/indoor_sweepline/IndoorSweeplineController.java
===================================================================
--- applications/editors/josm/plugins/indoor_sweepline/src/indoor_sweepline/IndoorSweeplineController.java	(revision 33827)
+++ applications/editors/josm/plugins/indoor_sweepline/src/indoor_sweepline/IndoorSweeplineController.java	(revision 33828)
@@ -6,6 +6,6 @@
 import javax.swing.DefaultComboBoxModel;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent;
 import org.openstreetmap.josm.gui.layer.LayerManager.LayerChangeListener;
@@ -17,5 +17,5 @@
 
     public IndoorSweeplineController(OsmDataLayer activeLayer, LatLon center) {
-        Main.getLayerManager().addLayerChangeListener(this);
+        MainApplication.getLayerManager().addLayerChangeListener(this);
         layer = activeLayer;
         model = new IndoorSweeplineModel(activeLayer, center);
Index: applications/editors/josm/plugins/indoor_sweepline/src/indoor_sweepline/IndoorSweeplineModel.java
===================================================================
--- applications/editors/josm/plugins/indoor_sweepline/src/indoor_sweepline/IndoorSweeplineModel.java	(revision 33827)
+++ applications/editors/josm/plugins/indoor_sweepline/src/indoor_sweepline/IndoorSweeplineModel.java	(revision 33828)
@@ -3,10 +3,11 @@
 
 import java.util.List;
+import java.util.Objects;
 import java.util.Vector;
 
 import javax.swing.DefaultComboBoxModel;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 
@@ -197,8 +198,11 @@
     private void updateOsmModel() {
         distributeWays();
-        Main.map.mapView.repaint();
-    }
-
-    public class SweepPolygonCursor {
+        MainApplication.getMap().mapView.repaint();
+    }
+
+    public static class SweepPolygonCursor {
+        public int stripIndex;
+        public int partIndex;
+
         public SweepPolygonCursor(int stripIndex, int partIndex) {
             this.stripIndex = stripIndex;
@@ -206,11 +210,19 @@
         }
 
-        public boolean equals(SweepPolygonCursor rhs) {
-            return rhs != null
-                    && stripIndex == rhs.stripIndex && partIndex == rhs.partIndex;
-        }
-
-        public int stripIndex;
-        public int partIndex;
+        @Override
+        public int hashCode() {
+            return Objects.hash(stripIndex, partIndex);
+        }
+
+        @Override
+        public boolean equals(Object obj) {
+            if (this == obj)
+                return true;
+            if (obj == null || getClass() != obj.getClass())
+                return false;
+            SweepPolygonCursor other = (SweepPolygonCursor) obj;
+            return Objects.equals(partIndex, other.partIndex)
+                    && Objects.equals(stripIndex, other.stripIndex);
+        }
     }
 
@@ -228,5 +240,5 @@
         }
 
-        Boolean truePtr = new Boolean(true);
+        Boolean truePtr = Boolean.TRUE;
         for (int i = 0; i < stripRefs.size(); ++i) {
             Vector<Boolean> refs = stripRefs.elementAt(i);
Index: applications/editors/josm/plugins/indoor_sweepline/src/indoor_sweepline/IndoorSweeplineWizardAction.java
===================================================================
--- applications/editors/josm/plugins/indoor_sweepline/src/indoor_sweepline/IndoorSweeplineWizardAction.java	(revision 33827)
+++ applications/editors/josm/plugins/indoor_sweepline/src/indoor_sweepline/IndoorSweeplineWizardAction.java	(revision 33828)
@@ -10,5 +10,5 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.JosmAction;
-import org.openstreetmap.josm.data.projection.Projections;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent;
@@ -25,5 +25,5 @@
         super(tr("Concourse wizard ..."), null,
                 tr("Opens up a wizard to create a concourse"), null, false);
-        Main.getLayerManager().addLayerChangeListener(this);
+        MainApplication.getLayerManager().addLayerChangeListener(this);
     }
 
@@ -36,18 +36,18 @@
             JOptionPane.showMessageDialog(JOptionPane.getFrameForComponent(Main.parent),
                     "The default layer is not an OSM layer.");
-        else if (Main.map == null)
+        else if (MainApplication.getMap() == null)
             JOptionPane.showMessageDialog(JOptionPane.getFrameForComponent(Main.parent),
                     "No map found.");
-        else if (Main.map.mapView == null)
+        else if (MainApplication.getMap().mapView == null)
             JOptionPane.showMessageDialog(JOptionPane.getFrameForComponent(Main.parent),
                     "No map view found.");
         else
             new IndoorSweeplineController((OsmDataLayer) layer,
-                    Projections.inverseProject(Main.map.mapView.getCenter()));
+                    Main.getProjection().eastNorth2latlon(MainApplication.getMap().mapView.getCenter()));
     }
 
     @Override
     public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) {
-        layer = Main.getLayerManager().getActiveLayer();
+        layer = MainApplication.getLayerManager().getActiveLayer();
     }
 
Index: applications/editors/josm/plugins/indoor_sweepline/src/indoor_sweepline/IndoorSweeplineWizardDialog.java
===================================================================
--- applications/editors/josm/plugins/indoor_sweepline/src/indoor_sweepline/IndoorSweeplineWizardDialog.java	(revision 33827)
+++ applications/editors/josm/plugins/indoor_sweepline/src/indoor_sweepline/IndoorSweeplineWizardDialog.java	(revision 33828)
@@ -33,4 +33,5 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.tools.Logging;
 
 public class IndoorSweeplineWizardDialog extends JDialog {
@@ -90,5 +91,5 @@
             }
         } catch (IllegalStateException ex) {
-            Main.trace(ex);
+            Logging.trace(ex);
         }
 
@@ -96,5 +97,5 @@
             level.setText(controller.getLevel());
         } catch (IllegalStateException ex) {
-            Main.trace(ex);
+            Logging.trace(ex);
         }
 
@@ -369,5 +370,5 @@
                     controller.setStripWidth(beamIndex, Double.parseDouble(stripWidth.getText()));
             } catch (NumberFormatException ex) {
-                Main.trace(ex);
+                Logging.trace(ex);
             }
 
@@ -410,5 +411,5 @@
     }
 
-    private class StructureTableModel extends DefaultTableModel {
+    private static class StructureTableModel extends DefaultTableModel {
         @Override
         public boolean isCellEditable(int row, int column) {
@@ -473,5 +474,5 @@
                                 Double.parseDouble(((TableModel) e.getSource()).getValueAt(row, column).toString()));
                 } catch (NumberFormatException ex) {
-                    Main.trace(ex);
+                    Logging.trace(ex);
                 }
             } else if (column == 1 && beamIndex % 2 == 0) {
@@ -492,5 +493,5 @@
     }
 
-    private class GridbagPanel extends JPanel {
+    private static class GridbagPanel extends JPanel {
         GridbagPanel() {
             gridbag = new GridBagLayout();
