[josm-plugins] 01/06: Imported Upstream version 0.0.svn32641+ds

Bas Couwenberg sebastic at debian.org
Tue Jul 12 12:27:54 UTC 2016


This is an automated email from the git hooks/post-receive script.

sebastic pushed a commit to branch master
in repository josm-plugins.

commit 857983c5a34ac3910a8179319bc00f3493a21f7b
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Tue Jul 12 13:04:55 2016 +0200

    Imported Upstream version 0.0.svn32641+ds
---
 DirectUpload/.project                              |   5 +
 DirectUpload/build.xml                             |   2 +-
 .../plugins/DirectUpload/UploadOsmConnection.java  |  12 +-
 build-common.xml                                   | 112 +++++++++----
 colorscheme/.project                               |   5 +
 editgpx/.settings/org.eclipse.jdt.core.prefs       |   1 +
 editgpx/.settings/org.eclipse.jdt.ui.prefs         |  10 +-
 editgpx/build.xml                                  |   2 +-
 .../josm/plugins/editgpx/EditGpxLayer.java         |  45 +++---
 .../josm/plugins/editgpx/EditGpxMode.java          |  63 ++++----
 .../josm/plugins/editgpx/EditGpxPlugin.java        |  26 +---
 .../josm/plugins/editgpx/GPXLayerImportAction.java |  11 +-
 lakewalker/.project                                |   5 +
 lakewalker/build.xml                               |   2 +-
 .../josm/plugins/lakewalker/LakewalkerAction.java  |   2 +-
 measurement/.settings/org.eclipse.jdt.ui.prefs     |  60 +++++++
 measurement/build.xml                              |   2 +-
 .../plugins/measurement/MeasurementDialog.java     |   8 +-
 .../josm/plugins/measurement/MeasurementLayer.java |   2 +-
 .../plugins/measurement/MeasurementPlugin.java     |  41 +++--
 openvisible/.project                               |   5 +
 openvisible/build.xml                              | 173 ++-------------------
 .../josm/plugin/openvisible/OpenVisibleAction.java |   6 +-
 routing/.project                                   |   5 +
 routing/.settings/org.eclipse.jdt.ui.prefs         |  60 +++++++
 routing/build.xml                                  |   2 +-
 .../com/innovant/josm/jrt/core/RoutingGraph.java   |   4 +-
 .../innovant/josm/plugin/routing/RoutingLayer.java |   2 +-
 .../josm/plugin/routing/RoutingPlugin.java         |  31 ++--
 .../plugin/routing/actions/AddRouteNodeAction.java |   4 +-
 .../routing/actions/MoveRouteNodeAction.java       |   8 +-
 .../routing/actions/RemoveRouteNodeAction.java     |   4 +-
 .../josm/plugin/routing/gui/RoutingDialog.java     |   4 +-
 .../josm/plugin/routing/gui/RoutingMenu.java       |  20 +--
 svn-info.xml                                       |  10 +-
 35 files changed, 420 insertions(+), 334 deletions(-)

diff --git a/DirectUpload/.project b/DirectUpload/.project
index 5a417af..2e3359c 100644
--- a/DirectUpload/.project
+++ b/DirectUpload/.project
@@ -10,6 +10,11 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.jdt.core.javanature</nature>
diff --git a/DirectUpload/build.xml b/DirectUpload/build.xml
index 4f91846..b3e7e35 100644
--- a/DirectUpload/build.xml
+++ b/DirectUpload/build.xml
@@ -4,7 +4,7 @@
     <!-- enter the SVN commit message -->
     <property name="commit.message" value="applied JOSM Ticket 4498 (patch by ax) - oauth support for gpx upload (I accidentally committed parts of the path in [24236])"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="9314"/>
+    <property name="plugin.main.version" value="10279"/>
 
     <!-- Configure these properties (replace "..." accordingly).
          See https://josm.openstreetmap.de/wiki/DevelopersGuide/DevelopingPlugins
diff --git a/DirectUpload/src/org/openstreetmap/josm/plugins/DirectUpload/UploadOsmConnection.java b/DirectUpload/src/org/openstreetmap/josm/plugins/DirectUpload/UploadOsmConnection.java
index e396af8..1e78cf1 100644
--- a/DirectUpload/src/org/openstreetmap/josm/plugins/DirectUpload/UploadOsmConnection.java
+++ b/DirectUpload/src/org/openstreetmap/josm/plugins/DirectUpload/UploadOsmConnection.java
@@ -10,6 +10,7 @@ import org.openstreetmap.josm.gui.MapView;
 import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
 import org.openstreetmap.josm.gui.layer.GpxLayer;
 import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.layer.MainLayerManager;
 import org.openstreetmap.josm.io.OsmConnection;
 import org.openstreetmap.josm.io.OsmTransferException;
 import org.openstreetmap.josm.tools.HttpClient;
@@ -48,10 +49,10 @@ public class UploadOsmConnection extends OsmConnection {
      */
     GpxData autoSelectTrace() {
         if (Main.map != null && Main.map.mapView != null) {
-            MapView mv = Main.map.mapView;
+            MainLayerManager lm = Main.getLayerManager();
 //            List<Layer> allLayers = new ArrayList<Layer>(mv.getAllLayersAsList());  // modifiable
             List<Layer> selectedLayers = LayerListDialog.getInstance().getModel().getSelectedLayers();
-            List<GpxLayer> gpxLayersRemaining = mv.getLayersOfType(GpxLayer.class);
+            List<GpxLayer> gpxLayersRemaining = lm.getLayersOfType(GpxLayer.class);
             gpxLayersRemaining.removeAll(selectedLayers);
             GpxLayer traceLayer = null;
             // find the first gpx layer inside selected layers
@@ -67,14 +68,13 @@ public class UploadOsmConnection extends OsmConnection {
                     traceLayer = gpxLayersRemaining.get(0);
                 }
                 // active layer
-                else if (mv.getActiveLayer() instanceof GpxLayer) {
-                    traceLayer = (GpxLayer) mv.getActiveLayer();
+                else if (lm.getActiveLayer() instanceof GpxLayer) {
+                    traceLayer = (GpxLayer) lm.getActiveLayer();
                 }
             }
 
             if (traceLayer != null) {
-                GpxData data = traceLayer.data;
-                return data;
+                return traceLayer.data;
             }
         }
 
diff --git a/build-common.xml b/build-common.xml
index 4ca862d..446fdd9 100644
--- a/build-common.xml
+++ b/build-common.xml
@@ -14,7 +14,9 @@
 
     <property name="josm"                   location="../../core/dist/josm-custom.jar"/>
     <property name="josm.test.build.dir"    location="../../core/test/build"/>
-    <property name="groovy.jar"             location="../00_core_tools/groovy-all-2.4.6.jar"/>
+    <property name="groovy.jar"             location="../00_core_tools/groovy-all-2.4.7.jar"/>
+    <property name="checkstyle.jar"         location="../00_core_tools/checkstyle/checkstyle-7.0-all.jar"/>
+    <property name="findbugs-ant.jar"       location="../00_core_tools/findbugs/findbugs-ant.jar"/>
     <property name="annotations.jar"        location="../00_core_tools/findbugs/annotations.jar"/>
     <property name="plugin.build.dir"       location="build"/>
     <property name="plugin.test.dir"        location="test"/>
@@ -40,6 +42,16 @@
     <!-- To be overriden in plugin build file before inclusion if other plugins are required -->
     <fileset id="plugin.requires.jars" dir="${plugin.dist.dir}" includes="nothing"/>
 
+    <path id="plugin.classpath">
+        <pathelement location="${josm}"/>
+        <fileset dir="${plugin.lib.dir}" erroronmissingdir="no">
+            <include name="**/*.jar"/>
+            <exclude name="**/*-sources.jar"/>
+            <exclude name="**/*-javadoc.jar"/>
+        </fileset>
+        <fileset refid="plugin.requires.jars"/>
+    </path>
+
     <!--
     **********************************************************
     ** init - initializes the build
@@ -53,20 +65,15 @@
     ** compile - compiles the source tree
     **********************************************************
     -->
-    <target name="compile" depends="init">
+    <target name="pre-compile">
+        <!-- to be overidden by plugins that need to perform additional tasks before compiling -->
+    </target>
+    <target name="compile" depends="init, pre-compile" unless="skip-compile">
         <echo message="compiling sources for ${plugin.jar} ..."/>
         <javac srcdir="src" debug="true" destdir="${plugin.build.dir}" includeantruntime="false" encoding="UTF-8">
             <compilerarg value="-Xlint:deprecation"/>
             <compilerarg value="-Xlint:unchecked"/>
-            <classpath>
-                <pathelement location="${josm}"/>
-                <fileset dir="${plugin.lib.dir}" erroronmissingdir="no">
-                    <include name="**/*.jar"/>
-                    <exclude name="**/*-sources.jar"/>
-                    <exclude name="**/*-javadoc.jar"/>
-                </fileset>
-                <fileset refid="plugin.requires.jars"/>
-            </classpath>
+            <classpath refid="plugin.classpath"/>
         </javac>
     </target>
     <!--
@@ -100,7 +107,7 @@
     ** dist - creates the plugin jar
     **********************************************************
     -->
-    <target name="dist" depends="compile,revision">
+    <target name="dist" depends="compile,revision" unless="skip-dist">
         <echo message="creating ${ant.project.name}.jar ... "/>
         <antcall target="setup-dist" />
         <delete file="MANIFEST" failonerror="no"/>
@@ -197,22 +204,22 @@
     <!--
       ** Initializes the REVISION.XML file from SVN information
     -->
-    <target name="init-svn-revision-xml">
+    <target name="init-svn-revision-xml" unless="skip-revision">
         <exec append="false" output="REVISION.XML" executable="svn" failifexecutionfails="false" resultproperty="svn.info.result">
             <env key="LANG" value="C"/>
             <arg value="info"/>
             <arg value="--xml"/>
             <arg value="."/>
         </exec>
-        <condition property="svn.info.success">
-            <equals arg1="${svn.info.result}" arg2="0" />
+        <condition property="svn.info.fail">
+            <not><equals arg1="${svn.info.result}" arg2="0" /></not>
         </condition>
     </target>
     <!--
       ** Initializes the REVISION.XML file from git-svn information.
          Obtains the revision from the git-svn-id field.
     -->
-    <target name="init-git-svn-revision-xml" unless="svn.info.success">
+    <target name="init-git-svn-revision-xml" if="svn.info.fail" unless="skip-revision">
         <exec append="false" output="REVISION.XML" executable="git" failifexecutionfails="false" resultproperty="git.svn.info.result">
             <arg value="log"/>
             <arg value="-1"/>
@@ -241,7 +248,7 @@
       ** Initializes the REVISION.XML file from git (w/o svn) information.
          Uses Unix date as revision number.
     -->
-    <target name="init-git-revision-xml" if="git.svn.fail">
+    <target name="init-git-revision-xml" if="git.svn.fail" unless="skip-revision">
         <exec append="false" output="REVISION.XML" executable="git" failifexecutionfails="false" resultproperty="git.info.result">
             <arg value="log"/>
             <arg value="-1"/>
@@ -260,13 +267,13 @@
            </not>
        </condition>
     </target>
-    <target name="init-revision-fallback" if="git.fail">
+    <target name="init-revision-fallback" if="git.fail" unless="skip-revision">
         <tstamp>
             <format property="current.time" pattern="yyyy-MM-dd'T'HH:mm:ss.SSS" />
         </tstamp>
         <echo file="REVISION.XML"><![CDATA[<info><entry><commit revision="UNKNOWN"><date>${current.time}</date></commit></entry></info>]]></echo>
     </target>
-    <target name="revision" depends="init-svn-revision-xml, init-git-svn-revision-xml, init-git-revision-xml, init-revision-fallback">
+    <target name="revision" depends="init-svn-revision-xml, init-git-svn-revision-xml, init-git-revision-xml, init-revision-fallback" unless="skip-revision">
       <xmlproperty file="REVISION.XML" prefix="version" keepRoot="false" collapseAttributes="true"/>
       <delete file="REVISION.XML"/>
     </target>
@@ -424,12 +431,15 @@
     </path>
     <macrodef name="init-test-preferences">
         <sequential>
-            <copy file="${plugin.test.dir}/config/preferences.template.xml" tofile="${plugin.test.dir}/config/unit-josm.home/preferences.xml"/>
-            <replace file="${plugin.test.dir}/config/unit-josm.home/preferences.xml" encoding="UTF-8" token="@OSM_USERNAME@" value="${osm.username}"/>
-            <replace file="${plugin.test.dir}/config/unit-josm.home/preferences.xml" encoding="UTF-8" token="@OSM_PASSWORD@" value="${osm.password}"/>
+            <copy file="../00_core_test_config/preferences.template.xml" tofile="../00_core_test_config/unit-josm.home/preferences.xml"/>
+            <replace file="../00_core_test_config/unit-josm.home/preferences.xml" encoding="UTF-8" token="@OSM_USERNAME@" value="${osm.username}"/>
+            <replace file="../00_core_test_config/unit-josm.home/preferences.xml" encoding="UTF-8" token="@OSM_PASSWORD@" value="${osm.password}"/>
         </sequential>
     </macrodef>
-    <target name="test-init">
+    <target name="check-test">
+        <available file="${plugin.test.dir}" type="dir" property="test.present"/>
+    </target>
+    <target name="test-init" depends="check-test" if="test.present">
         <mkdir dir="${plugin.test.dir}/build"/>
         <mkdir dir="${plugin.test.dir}/build/unit"/>
         <mkdir dir="${plugin.test.dir}/report"/>
@@ -439,10 +449,10 @@
         <delete dir="${plugin.test.dir}/build"/>
         <delete dir="${plugin.test.dir}/report"/>
         <delete file="${plugin.test.dir}/jacoco.exec" />
-        <delete file="${plugin.test.dir}/config/unit-josm.home/preferences.xml" />
-        <delete dir="${plugin.test.dir}/config/unit-josm.home/cache" failonerror="false"/>
+        <delete file="../00_core_test_config/unit-josm.home/preferences.xml" />
+        <delete dir="../00_core_test_config/unit-josm.home/cache" failonerror="false"/>
     </target>
-    <target name="test-compile" depends="test-init,dist">
+    <target name="test-compile" depends="test-init,dist" if="test.present">
         <taskdef name="groovyc" classname="org.codehaus.groovy.ant.Groovyc" classpath="${groovy.jar}"/>
         <sequential>
             <groovyc srcdir="${plugin.test.dir}/unit" destdir="${plugin.test.dir}/build/unit" encoding="UTF-8">
@@ -450,14 +460,14 @@
                     <fileset refid="plugin.requires.jars"/>
                     <path refid="test.classpath"/>
                 </classpath>
-                <javac target="1.7" source="1.7" debug="on" encoding="UTF-8">
+                <javac debug="on" encoding="UTF-8">
                     <compilerarg value="-Xlint:all"/>
                     <compilerarg value="-Xlint:-serial"/>
                 </javac>
             </groovyc>
         </sequential>
     </target>
-    <target name="test" depends="dist, test-clean, test-compile"
+    <target name="test" depends="dist, test-clean, test-compile" if="test.present"
         description="Run unit tests. OSM API (TEST) account shall be set with -Dosm.username and -Dosm.password">
         <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml" classpath="../00_core_tools/jacocoant.jar" />
         <sequential>
@@ -465,7 +475,7 @@
             <jacoco:coverage destfile="${plugin.test.dir}/jacoco.exec">
                 <junit printsummary="yes" fork="true" forkmode="once" dir="${basedir}">
                     <jvmarg value="-Dfile.encoding=UTF-8"/>
-                    <sysproperty key="josm.home" value="${plugin.test.dir}/config/unit-josm.home"/>
+                    <sysproperty key="josm.home" value="../00_core_test_config/unit-josm.home"/>
                     <sysproperty key="josm.test.data" value="${plugin.test.dir}/data"/>
                     <sysproperty key="java.awt.headless" value="true"/>
                     <sysproperty key="suppressPermanentFailure" value="${suppressPermanentFailure}"/>
@@ -484,9 +494,49 @@
         </sequential>
     </target>
 
+    <target name="checkstyle">
+        <taskdef resource="com/puppycrawl/tools/checkstyle/ant/checkstyle-ant-task.properties" classpath="${checkstyle.jar}"/>
+        <checkstyle config="../00_core_tools/checkstyle/josm_checks.xml">
+            <fileset dir="${basedir}/src" includes="**/*.java" excludes="com/google/**/*.java,
+                                                                         crosby/**/*.java,
+                                                                         edu/princeton/**/*.java,
+                                                                         net/boplicity/**/*.java,
+                                                                         org/apache/**/*.java,
+                                                                         org/dinopolis/**/*.java,
+                                                                         org/kaintoch/**/*.java,
+                                                                         org/marvinproject/**/*.java,
+                                                                         org/netbeans/**/*.java,
+																		 org/openstreetmap/josm/plugins/ohe/parser/**/*.java
+                                                                         org/osgeo/**/*.java"/>
+            <fileset dir="${basedir}/test" includes="**/*.java" erroronmissingdir="false"/>
+            <formatter type="xml" toFile="checkstyle-josm-${ant.project.name}.xml"/>
+        </checkstyle>
+    </target>
+
+    <target name="findbugs" depends="dist">
+        <taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" classpath="${findbugs-ant.jar}"/>
+        <path id="findbugs-classpath">
+            <fileset dir="../00_core_tools/findbugs/">
+                <include name="*.jar"/>
+            </fileset>
+        </path>
+        <property name="findbugs-classpath" refid="findbugs-classpath"/>
+        <findbugs output="xml"
+                outputFile="findbugs-josm-${ant.project.name}.xml"
+                classpath="${findbugs-classpath}"
+                pluginList=""
+                excludeFilter="../findbugs-filter.xml"
+                effort="default"
+                reportLevel="low"
+                >
+            <auxClasspath refid="plugin.classpath" />
+            <sourcePath path="${basedir}/src" />
+            <class location="${plugin.jar}" />
+        </findbugs>
+    </target>
+
     <target name="runjosm" depends="install">
-        <java jar="${josm}" fork="true">
-        </java>
+        <java jar="${josm}" fork="true"/>
     </target>
 
     <target name="profilejosm" depends="install">
diff --git a/colorscheme/.project b/colorscheme/.project
index f9fda49..ec39645 100644
--- a/colorscheme/.project
+++ b/colorscheme/.project
@@ -10,6 +10,11 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.jdt.core.javanature</nature>
diff --git a/editgpx/.settings/org.eclipse.jdt.core.prefs b/editgpx/.settings/org.eclipse.jdt.core.prefs
index 63f25f1..741304c 100644
--- a/editgpx/.settings/org.eclipse.jdt.core.prefs
+++ b/editgpx/.settings/org.eclipse.jdt.core.prefs
@@ -80,6 +80,7 @@ org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
 org.eclipse.jdt.core.compiler.problem.unusedImport=warning
 org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
 org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
diff --git a/editgpx/.settings/org.eclipse.jdt.ui.prefs b/editgpx/.settings/org.eclipse.jdt.ui.prefs
index 079a653..8d07e12 100644
--- a/editgpx/.settings/org.eclipse.jdt.ui.prefs
+++ b/editgpx/.settings/org.eclipse.jdt.ui.prefs
@@ -1,4 +1,3 @@
-#Sat Oct 16 19:07:29 CEST 2010
 cleanup.add_default_serial_version_id=true
 cleanup.add_generated_serial_version_id=false
 cleanup.add_missing_annotations=true
@@ -61,16 +60,19 @@ sp_cleanup.add_missing_annotations=true
 sp_cleanup.add_missing_deprecated_annotations=true
 sp_cleanup.add_missing_methods=false
 sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=true
 sp_cleanup.add_serial_version_id=false
 sp_cleanup.always_use_blocks=true
 sp_cleanup.always_use_parentheses_in_expressions=false
 sp_cleanup.always_use_this_for_non_static_field_access=false
 sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_functional_interfaces=false
 sp_cleanup.convert_to_enhanced_for_loop=false
 sp_cleanup.correct_indentation=true
 sp_cleanup.format_source_code=false
 sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.insert_inferred_type_arguments=false
 sp_cleanup.make_local_variable_final=false
 sp_cleanup.make_parameters_final=false
 sp_cleanup.make_private_fields_final=true
@@ -86,6 +88,7 @@ sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=
 sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
 sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
 sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_redundant_type_arguments=false
 sp_cleanup.remove_trailing_whitespaces=true
 sp_cleanup.remove_trailing_whitespaces_all=true
 sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
@@ -99,10 +102,13 @@ sp_cleanup.remove_unused_private_methods=true
 sp_cleanup.remove_unused_private_types=true
 sp_cleanup.sort_members=false
 sp_cleanup.sort_members_all=false
+sp_cleanup.use_anonymous_class_creation=false
 sp_cleanup.use_blocks=false
 sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_lambda=false
 sp_cleanup.use_parentheses_in_expressions=false
 sp_cleanup.use_this_for_non_static_field_access=false
 sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
 sp_cleanup.use_this_for_non_static_method_access=false
 sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+sp_cleanup.use_type_arguments=false
diff --git a/editgpx/build.xml b/editgpx/build.xml
index 90d809f..7210979 100644
--- a/editgpx/build.xml
+++ b/editgpx/build.xml
@@ -3,7 +3,7 @@
     <!-- enter the SVN commit message -->
     <property name="commit.message" value="Changed constructor signature of plugin main class"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="10144"/>
+    <property name="plugin.main.version" value="10282"/>
     
     <!-- Configure these properties (replace "..." accordingly).
          See https://josm.openstreetmap.de/wiki/DevelopersGuide/DevelopingPlugins
diff --git a/editgpx/src/org/openstreetmap/josm/plugins/editgpx/EditGpxLayer.java b/editgpx/src/org/openstreetmap/josm/plugins/editgpx/EditGpxLayer.java
index 3b4ea09..c13e1a1 100644
--- a/editgpx/src/org/openstreetmap/josm/plugins/editgpx/EditGpxLayer.java
+++ b/editgpx/src/org/openstreetmap/josm/plugins/editgpx/EditGpxLayer.java
@@ -37,8 +37,12 @@ public class EditGpxLayer extends Layer {
     public final EditGpxData data;
     private GPXLayerImportAction layerImport;
 
-    public EditGpxLayer(String str, EditGpxData gpxData) {
-        super(str);
+    /**
+     * Constructs a new {@code EditGpxLayer}.
+     * @param gpxData edit gpx data
+     */
+    public EditGpxLayer(EditGpxData gpxData) {
+        super(tr("EditGpx"));
         data = gpxData;
         layerImport = new GPXLayerImportAction(data);
     }
@@ -48,12 +52,8 @@ public class EditGpxLayer extends Layer {
      * if so show import dialog to user
      */
     public void initializeImport() {
-        try {
-            if (data.isEmpty()) {
-                layerImport.activateImport();
-            }
-        } catch (Exception e) {
-            Main.error(e);
+        if (data.isEmpty()) {
+            layerImport.activateImport();
         }
     }
 
@@ -115,18 +115,15 @@ public class EditGpxLayer extends Layer {
         }
     }
 
-
     public void reset(){
         //TODO implement a reset
     }
 
-
     @Override
     public void visitBoundingBox(BoundingXYVisitor v) {
         // TODO Auto-generated method stub
     }
 
-
     /**
      * convert a DataSet to GPX
      *
@@ -141,18 +138,19 @@ public class EditGpxLayer extends Layer {
      * Context item "Convert to GPX layer"
      */
     public class ConvertToGpxLayerAction extends AbstractAction {
+        /**
+         * Constructs a new {@code ConvertToGpxLayerAction}.
+         */
         public ConvertToGpxLayerAction() {
             super(tr("Convert to GPX layer"), ImageProvider.get("converttogpx"));
         }
         @Override
         public void actionPerformed(ActionEvent e) {
-            if (Main.map.mapMode instanceof EditGpxMode) {
-                if (!Main.map.selectSelectTool(false)) {
-                    Main.map.selectZoomTool(false); // Select tool might not be support of active layer, zoom is always supported
-                }
+            if (Main.map.mapMode instanceof EditGpxMode && !Main.map.selectSelectTool(false)) {
+                Main.map.selectZoomTool(false); // Select tool might not be support of active layer, zoom is always supported
             }
-            Main.main.addLayer(new GpxLayer(toGpxData(false), tr("Converted from: {0}", getName())));
-            Main.main.removeLayer(EditGpxLayer.this);
+            Main.getLayerManager().addLayer(new GpxLayer(toGpxData(false), tr("Converted from: {0}", getName())));
+            Main.getLayerManager().removeLayer(EditGpxLayer.this);
         }
     }
 
@@ -160,18 +158,19 @@ public class EditGpxLayer extends Layer {
      * Context item "Convert to GPX layer with anonymised time"
      */
     public class ConvertToAnonTimeGpxLayerAction extends AbstractAction {
+        /**
+         * Constructs a new {@code ConvertToAnonTimeGpxLayerAction}.
+         */
         public ConvertToAnonTimeGpxLayerAction() {
             super(tr("Convert to GPX layer with anonymised time"), ImageProvider.get("converttogpx"));
         }
         @Override
         public void actionPerformed(ActionEvent e) {
-            if (Main.map.mapMode instanceof EditGpxMode) {
-                if (!Main.map.selectSelectTool(false)) {
-                    Main.map.selectZoomTool(false); // Select tool might not be support of active layer, zoom is always supported
-                }
+            if (Main.map.mapMode instanceof EditGpxMode && !Main.map.selectSelectTool(false)) {
+                Main.map.selectZoomTool(false); // Select tool might not be support of active layer, zoom is always supported
             }
-            Main.main.addLayer(new GpxLayer(toGpxData(true), tr("Converted from: {0}", getName())));
-            Main.main.removeLayer(EditGpxLayer.this);
+            Main.getLayerManager().addLayer(new GpxLayer(toGpxData(true), tr("Converted from: {0}", getName())));
+            Main.getLayerManager().removeLayer(EditGpxLayer.this);
         }
     }
 }
diff --git a/editgpx/src/org/openstreetmap/josm/plugins/editgpx/EditGpxMode.java b/editgpx/src/org/openstreetmap/josm/plugins/editgpx/EditGpxMode.java
index b19bf33..95f08c5 100644
--- a/editgpx/src/org/openstreetmap/josm/plugins/editgpx/EditGpxMode.java
+++ b/editgpx/src/org/openstreetmap/josm/plugins/editgpx/EditGpxMode.java
@@ -17,9 +17,10 @@ import java.util.List;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.mapmode.MapMode;
 import org.openstreetmap.josm.gui.MapFrame;
-import org.openstreetmap.josm.gui.MapView;
-import org.openstreetmap.josm.gui.MapView.LayerChangeListener;
-import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent;
+import org.openstreetmap.josm.gui.layer.LayerManager.LayerChangeListener;
+import org.openstreetmap.josm.gui.layer.LayerManager.LayerOrderChangeEvent;
+import org.openstreetmap.josm.gui.layer.LayerManager.LayerRemoveEvent;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.plugins.editgpx.data.EditGpxData;
 import org.openstreetmap.josm.plugins.editgpx.data.EditGpxTrack;
@@ -30,13 +31,17 @@ public class EditGpxMode extends MapMode implements LayerChangeListener {
 
     private static final long serialVersionUID = 7940589057093872411L;
     Point pointPressed;
-    MapFrame mapFrame;
+    private final MapFrame mapFrame;
     Rectangle oldRect;
-    MapFrame frame;
-    EditGpxLayer currentEditLayer;
+    transient EditGpxLayer currentEditLayer;
 
-    public EditGpxMode(MapFrame mapFrame, String name, String desc) {
-        super(name, "editgpx_mode.png", desc, mapFrame, Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
+    /**
+     * Constructs a new {@code EditGpxMode}.
+     * @param mapFrame map frame
+     */
+    public EditGpxMode(MapFrame mapFrame) {
+        super("editgpx", "editgpx_mode.png", tr("edit gpx tracks"), Main.map, Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
+        this.mapFrame = mapFrame;
     }
 
     @Override
@@ -44,7 +49,7 @@ public class EditGpxMode extends MapMode implements LayerChangeListener {
         super.enterMode();
         Main.map.mapView.addMouseListener(this);
         Main.map.mapView.addMouseMotionListener(this);
-        MapView.addLayerChangeListener(this);
+        Main.map.mapView.getLayerManager().addLayerChangeListener(this);
         updateLayer();
     }
 
@@ -53,6 +58,7 @@ public class EditGpxMode extends MapMode implements LayerChangeListener {
         super.exitMode();
         Main.map.mapView.removeMouseListener(this);
         Main.map.mapView.removeMouseMotionListener(this);
+        Main.map.mapView.getLayerManager().removeLayerChangeListener(this);
     }
 
     @Override
@@ -76,9 +82,7 @@ public class EditGpxMode extends MapMode implements LayerChangeListener {
 
         requestFocusInMapView();
 
-        Point pointReleased = e.getPoint();
-
-        Rectangle r = createRect(pointReleased, pointPressed);
+        Rectangle r = createRect(e.getPoint(), pointPressed);
 
         //go through nodes and mark the ones in the selection rect as deleted
         if (currentEditLayer != null) {
@@ -131,8 +135,8 @@ public class EditGpxMode extends MapMode implements LayerChangeListener {
      * Draw a selection rectangle on screen.
      */
     private void paintRect(Point p1, Point p2) {
-        if (frame != null) {
-            Graphics g = frame.getGraphics();
+        if (mapFrame != null) {
+            Graphics g = mapFrame.getGraphics();
 
             Rectangle r = oldRect;
             if (r != null) {
@@ -150,35 +154,33 @@ public class EditGpxMode extends MapMode implements LayerChangeListener {
         }
     }
 
-    public void setFrame(MapFrame mapFrame) {
-        frame = mapFrame;
-    }
-
     /**
      * create new layer, add listeners and try importing gpx data.
      */
     private void updateLayer() {
 
-        List<EditGpxLayer> layers = Main.map.mapView.getLayersOfType(EditGpxLayer.class);
-        currentEditLayer = layers.isEmpty()?null:layers.get(0);
+        List<EditGpxLayer> layers = Main.map.mapView.getLayerManager().getLayersOfType(EditGpxLayer.class);
+        currentEditLayer = layers.isEmpty() ? null : layers.get(0);
 
         if(currentEditLayer == null) {
-            currentEditLayer = new EditGpxLayer(tr("EditGpx"), new EditGpxData());
-            Main.main.addLayer(currentEditLayer);
+            currentEditLayer = new EditGpxLayer(new EditGpxData());
+            Main.getLayerManager().addLayer(currentEditLayer);
             currentEditLayer.initializeImport();
         }
         Main.map.mapView.repaint();
     }
 
-    public void activeLayerChange(Layer oldLayer, Layer newLayer) { }
-
-    public void layerAdded(Layer newLayer) { }
+    @Override
+    public void layerAdded(LayerAddEvent e) {
+        // Do nothing
+    }
 
-    public void layerRemoved(Layer oldLayer) {
-        if (oldLayer instanceof EditGpxLayer) {
+    @Override
+    public void layerRemoving(LayerRemoveEvent e) {
+        if (e.getRemovedLayer() instanceof EditGpxLayer) {
             currentEditLayer = null;
             if (Main.map.mapMode instanceof EditGpxMode) {
-                if (Main.map.mapView.getActiveLayer() instanceof OsmDataLayer) {
+                if (Main.map.mapView.getLayerManager().getActiveLayer() instanceof OsmDataLayer) {
                     Main.map.selectSelectTool(false);
                 } else {
                     Main.map.selectZoomTool(false);
@@ -188,8 +190,7 @@ public class EditGpxMode extends MapMode implements LayerChangeListener {
     }
 
     @Override
-    public void destroy() {
-        super.destroy();
-        MapView.removeLayerChangeListener(this);
+    public void layerOrderChanged(LayerOrderChangeEvent e) {
+        // Do nothing
     }
 }
diff --git a/editgpx/src/org/openstreetmap/josm/plugins/editgpx/EditGpxPlugin.java b/editgpx/src/org/openstreetmap/josm/plugins/editgpx/EditGpxPlugin.java
index 2396e29..6b344a1 100644
--- a/editgpx/src/org/openstreetmap/josm/plugins/editgpx/EditGpxPlugin.java
+++ b/editgpx/src/org/openstreetmap/josm/plugins/editgpx/EditGpxPlugin.java
@@ -3,10 +3,6 @@
  */
 package org.openstreetmap.josm.plugins.editgpx;
 
-import static org.openstreetmap.josm.tools.I18n.tr;
-
-import java.net.URL;
-
 import javax.swing.ImageIcon;
 
 import org.openstreetmap.josm.Main;
@@ -25,20 +21,15 @@ import org.openstreetmap.josm.plugins.PluginInformation;
  * TODO:
  * - BUG: when importing eGpxLayer is shown as RawGpxLayer??
  * - implement reset if user made mistake while marking
- *
- *
  */
 public class EditGpxPlugin extends Plugin {
 
-    private IconToggleButton btn;
-    private EditGpxMode mode;
-
+    /**
+     * Constructs a new {@code EditGpxPlugin}.
+     * @param info plugin information
+     */
     public EditGpxPlugin(PluginInformation info) {
         super(info);
-        mode = new EditGpxMode(Main.map, "editgpx", tr("edit gpx tracks"));
-
-        btn = new IconToggleButton(mode);
-        btn.setVisible(true);
     }
 
     /**
@@ -46,15 +37,14 @@ public class EditGpxPlugin extends Plugin {
      */
     @Override
     public void mapFrameInitialized(MapFrame oldFrame, MapFrame newFrame) {
-        mode.setFrame(newFrame);
-        if (oldFrame == null && newFrame != null) {
+        if (newFrame != null) {
+            EditGpxMode mode = new EditGpxMode(newFrame);
             if (Main.map != null)
-                Main.map.addMapMode(btn);
+                Main.map.addMapMode(new IconToggleButton(mode));
         }
     }
 
     public static ImageIcon loadIcon(String name) {
-        URL url = EditGpxPlugin.class.getResource("/images/editgpx.png");
-        return new ImageIcon(url);
+        return new ImageIcon(EditGpxPlugin.class.getResource("/images/editgpx.png"));
     }
 }
diff --git a/editgpx/src/org/openstreetmap/josm/plugins/editgpx/GPXLayerImportAction.java b/editgpx/src/org/openstreetmap/josm/plugins/editgpx/GPXLayerImportAction.java
index dced68c..e27dcbf 100644
--- a/editgpx/src/org/openstreetmap/josm/plugins/editgpx/GPXLayerImportAction.java
+++ b/editgpx/src/org/openstreetmap/josm/plugins/editgpx/GPXLayerImportAction.java
@@ -10,7 +10,6 @@ import static org.openstreetmap.josm.tools.I18n.tr;
 
 import java.awt.Component;
 import java.awt.event.ActionEvent;
-import java.util.Collection;
 
 import javax.swing.AbstractAction;
 import javax.swing.Box;
@@ -52,11 +51,10 @@ class GPXLayerImportAction extends AbstractAction {
         DefaultListModel<GpxLayer> dModel = new DefaultListModel<>();
 
         final JList<GpxLayer> layerList = new JList<>(dModel);
-        Collection<Layer> data = Main.map.mapView.getAllLayers();
         int layerCnt = 0;
 
-        for (Layer l : data){
-            if(l instanceof GpxLayer){
+        for (Layer l : Main.map.mapView.getLayerManager().getLayers()){
+            if (l instanceof GpxLayer){
                 dModel.addElement((GpxLayer) l);
                 layerCnt++;
             }
@@ -64,7 +62,8 @@ class GPXLayerImportAction extends AbstractAction {
         if(layerCnt > 0){
             layerList.setSelectionInterval(0, layerCnt-1);
             layerList.setCellRenderer(new DefaultListCellRenderer(){
-                @Override public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
+                @Override
+                public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
                     Layer layer = (Layer)value;
                     JLabel label = (JLabel)super.getListCellRendererComponent(list,
                             layer.getName(), index, isSelected, cellHasFocus);
@@ -113,8 +112,8 @@ class GPXLayerImportAction extends AbstractAction {
 
     /**
      * called when pressing "Import.." from context menu of EditGpx layer
-     *
      */
+    @Override
     public void actionPerformed(ActionEvent arg0) {
         activateImport();
     }
diff --git a/lakewalker/.project b/lakewalker/.project
index 0304955..caa4c0b 100644
--- a/lakewalker/.project
+++ b/lakewalker/.project
@@ -10,6 +10,11 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.jdt.core.javanature</nature>
diff --git a/lakewalker/build.xml b/lakewalker/build.xml
index de59fd5..e9ddcf7 100644
--- a/lakewalker/build.xml
+++ b/lakewalker/build.xml
@@ -4,7 +4,7 @@
     <!-- enter the SVN commit message -->
     <property name="commit.message" value="Changed the constructor signature of the plugin main class"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="7001"/>
+    <property name="plugin.main.version" value="10353"/>
 
     <!-- Configure these properties (replace "..." accordingly).
          See https://josm.openstreetmap.de/wiki/DevelopersGuide/DevelopingPlugins
diff --git a/lakewalker/src/org/openstreetmap/josm/plugins/lakewalker/LakewalkerAction.java b/lakewalker/src/org/openstreetmap/josm/plugins/lakewalker/LakewalkerAction.java
index 062393c..12aa882 100644
--- a/lakewalker/src/org/openstreetmap/josm/plugins/lakewalker/LakewalkerAction.java
+++ b/lakewalker/src/org/openstreetmap/josm/plugins/lakewalker/LakewalkerAction.java
@@ -278,7 +278,7 @@ class LakewalkerAction extends JosmAction implements MouseListener {
 
             if (!commands.isEmpty()) {
                 Main.main.undoRedo.add(new SequenceCommand(tr("Lakewalker trace"), commands));
-                Main.main.getCurrentDataSet().setSelected(ways);
+                getLayerManager().getEditDataSet().setSelected(ways);
             } else {
                 System.out.println("Failed");
             }
diff --git a/measurement/.settings/org.eclipse.jdt.ui.prefs b/measurement/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..166c348
--- /dev/null
+++ b/measurement/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,60 @@
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_functional_interfaces=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=true
+sp_cleanup.format_source_code=false
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.insert_inferred_type_arguments=false
+sp_cleanup.make_local_variable_final=true
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_redundant_type_arguments=true
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=false
+sp_cleanup.remove_unused_imports=false
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_anonymous_class_creation=false
+sp_cleanup.use_blocks=false
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_lambda=true
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+sp_cleanup.use_type_arguments=false
diff --git a/measurement/build.xml b/measurement/build.xml
index ff8e034..ccb206c 100644
--- a/measurement/build.xml
+++ b/measurement/build.xml
@@ -3,7 +3,7 @@
     <!-- enter the SVN commit message -->
     <property name="commit.message" value="recompile dure to core change"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="8554"/>
+    <property name="plugin.main.version" value="10369"/>
     <property name="plugin.canloadatruntime" value="true"/>
     
     <!-- Configure these properties (replace "..." accordingly).
diff --git a/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementDialog.java b/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementDialog.java
index 368df1d..1a7c445 100644
--- a/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementDialog.java
+++ b/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementDialog.java
@@ -95,7 +95,7 @@ public class MeasurementDialog extends ToggleDialog implements SelectionChangedL
         resetButton = new SideButton(new AbstractAction() {
             {
                 putValue(NAME, tr("Reset"));
-                putValue(SMALL_ICON,ImageProvider.get("dialogs", "select"));
+                new ImageProvider("dialogs", "select").getResource().attachImageIcon(this, true);
                 putValue(SHORT_DESCRIPTION, tr("Reset current measurement results and delete measurement path."));
                 putValue("help", HelpUtil.ht("/Dialog/Measurement#Reset"));
             }
@@ -240,7 +240,7 @@ public class MeasurementDialog extends ToggleDialog implements SelectionChangedL
             }
         });
 
-        DataSet currentDs = Main.main.getCurrentDataSet();
+        DataSet currentDs = Main.getLayerManager().getEditDataSet();
 
         if (ds != currentDs) {
             if (ds != null) {
@@ -279,7 +279,7 @@ public class MeasurementDialog extends ToggleDialog implements SelectionChangedL
         Node n = event.getNode();
         // Refresh selection if a node belonging to a selected member has moved (example: scale action)
         if ((nodes != null && nodes.contains(n)) || waysContain(n)) {
-            selectionChanged(Main.main.getCurrentDataSet().getSelected());
+            selectionChanged(Main.getLayerManager().getEditDataSet().getSelected());
         }
     }
 
@@ -294,7 +294,7 @@ public class MeasurementDialog extends ToggleDialog implements SelectionChangedL
     @Override
     public void systemOfMeasurementChanged(String oldSoM, String newSoM) {
         // Refresh selection to take into account new system of measurement
-        DataSet currentDs = Main.main.getCurrentDataSet();
+        DataSet currentDs = Main.getLayerManager().getEditDataSet();
         if (currentDs != null) {
             selectionChanged(currentDs.getSelected());
         }
diff --git a/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementLayer.java b/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementLayer.java
index be5afb7..0db4910 100644
--- a/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementLayer.java
+++ b/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementLayer.java
@@ -233,7 +233,7 @@ public class MeasurementLayer extends Layer {
         public void actionPerformed(ActionEvent e) {
             Box panel = Box.createVerticalBox();
             final JList<GpxLayer> layerList = new JList<>(model);
-            Collection<Layer> data = Main.map.mapView.getAllLayers();
+            Collection<Layer> data = Main.getLayerManager().getLayers();
             Layer lastLayer = null;
             int layerCnt = 0;
 
diff --git a/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementPlugin.java b/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementPlugin.java
index 25bbc8f..e8ef0d2 100644
--- a/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementPlugin.java
+++ b/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementPlugin.java
@@ -6,9 +6,13 @@ import static org.openstreetmap.josm.tools.I18n.tr;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.gui.IconToggleButton;
 import org.openstreetmap.josm.gui.MapFrame;
-import org.openstreetmap.josm.gui.MapView;
-import org.openstreetmap.josm.gui.MapView.LayerChangeListener;
 import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent;
+import org.openstreetmap.josm.gui.layer.LayerManager.LayerChangeListener;
+import org.openstreetmap.josm.gui.layer.LayerManager.LayerOrderChangeEvent;
+import org.openstreetmap.josm.gui.layer.LayerManager.LayerRemoveEvent;
+import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent;
+import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener;
 import org.openstreetmap.josm.plugins.Plugin;
 import org.openstreetmap.josm.plugins.PluginInformation;
 
@@ -41,17 +45,34 @@ public class MeasurementPlugin extends Plugin {
     public static MeasurementLayer getCurrentLayer() {
         if (currentLayer == null) {
             currentLayer = new MeasurementLayer(tr("Measurements"));
-            Main.main.addLayer(currentLayer);
-            MapView.addLayerChangeListener(new LayerChangeListener(){
-                public void activeLayerChange(final Layer oldLayer, final Layer newLayer) {
-                    if(newLayer instanceof MeasurementLayer)
+            Main.getLayerManager().addLayer(currentLayer);
+            final ActiveLayerChangeListener activeListener = new ActiveLayerChangeListener() {
+                @Override
+                public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) {
+                    Layer newLayer = Main.getLayerManager().getActiveLayer();
+                    if (newLayer instanceof MeasurementLayer)
                         MeasurementPlugin.currentLayer = (MeasurementLayer)newLayer;
                 }
-                public void layerAdded(final Layer newLayer) {
+            };
+            Main.getLayerManager().addActiveLayerChangeListener(activeListener);
+            Main.getLayerManager().addLayerChangeListener(new LayerChangeListener(){
+                @Override
+                public void layerAdded(LayerAddEvent e) {
+                    // Do nothing
                 }
-                public void layerRemoved(final Layer oldLayer) {
-                    if (oldLayer != null && oldLayer == currentLayer)
-                        MapView.removeLayerChangeListener(this);
+
+                @Override
+                public void layerRemoving(LayerRemoveEvent e) {
+                    Layer oldLayer = e.getRemovedLayer();
+                    if (oldLayer != null && oldLayer == currentLayer) {
+                        Main.getLayerManager().removeActiveLayerChangeListener(activeListener);
+                        Main.getLayerManager().removeLayerChangeListener(this);
+                    }
+                }
+
+                @Override
+                public void layerOrderChanged(LayerOrderChangeEvent e) {
+                    // Do nothing
                 }
             });
         }
diff --git a/openvisible/.project b/openvisible/.project
index 148bd4e..0f1992a 100644
--- a/openvisible/.project
+++ b/openvisible/.project
@@ -10,6 +10,11 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.jdt.core.javanature</nature>
diff --git a/openvisible/build.xml b/openvisible/build.xml
index 3306760..65bbda1 100644
--- a/openvisible/build.xml
+++ b/openvisible/build.xml
@@ -1,163 +1,24 @@
 <?xml version="1.0" encoding="utf-8"?>
 <project name="openvisible" default="dist" basedir=".">
+
     <!-- enter the SVN commit message -->
     <property name="commit.message" value="Changed the constructor signature of the plugin main class; updated build.xml"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="7001"/>
-    <!--
-      ************************************************
-      ** should not be necessary to change the following properties
-     -->
-    <property name="josm" location="../../core/dist/josm-custom.jar"/>
-    <property name="plugin.dist.dir" value="../../dist"/>
-    <property name="plugin.build.dir" value="build"/>
-    <property name="plugin.jar" value="${plugin.dist.dir}/${ant.project.name}.jar"/>
-    <property name="ant.build.javac.target" value="1.7"/>
-    <target name="init">
-        <mkdir dir="${plugin.build.dir}"/>
-    </target>
-    <target name="compile" depends="init">
-        <echo message="creating ${plugin.jar}"/>
-        <javac srcdir="src" classpath="${josm}" debug="true" destdir="${plugin.build.dir}" includeantruntime="false">
-            <compilerarg value="-Xlint:deprecation"/>
-            <compilerarg value="-Xlint:unchecked"/>
-        </javac>
-    </target>
-    <target name="dist" depends="compile,revision">
-        <copy todir="${plugin.build.dir}/images">
-            <fileset dir="images"/>
-        </copy>
-        <copy todir="${plugin.build.dir}/data">
-            <fileset dir="data"/>
-        </copy>
-        <jar destfile="${plugin.jar}" basedir="${plugin.build.dir}" manifestencoding="UTF-8">
-            <manifest>
-                <attribute name="Author" value="Christof Dallermassl"/>
-                <attribute name="Plugin-Class" value="at.dallermassl.josm.plugin.openvisible.OpenVisiblePlugin"/>
-                <attribute name="Plugin-Date" value="${version.entry.commit.date}"/>
-                <attribute name="Plugin-Dependencies" value="jgrapht-jdk1.5"/>
-                <attribute name="Plugin-Description" value="Allows opening gpx/osm files that intersect the currently visible screen area"/>
-                <attribute name="Plugin-Icon" value="images/openvisible.png"/>
-                <attribute name="Plugin-Mainversion" value="${plugin.main.version}"/>
-                <attribute name="Plugin-Stage" value="50"/>
-                <attribute name="Plugin-Version" value="${version.entry.commit.revision}"/>
-            </manifest>
-        </jar>
-    </target>
-    <target name="revision">
-        <exec append="false" output="REVISION" executable="svn" failifexecutionfails="false">
-            <env key="LANG" value="C"/>
-            <arg value="info"/>
-            <arg value="--xml"/>
-            <arg value="."/>
-        </exec>
-        <xmlproperty file="REVISION" prefix="version" keepRoot="false" collapseAttributes="true"/>
-        <delete file="REVISION"/>
-    </target>
-    <target name="clean">
-        <delete dir="${plugin.build.dir}"/>
-        <delete file="${plugin.jar}"/>
-    </target>
-    <target name="install" depends="dist">
-        <property environment="env"/>
-        <condition property="josm.plugins.dir" value="${env.APPDATA}/JOSM/plugins" else="${user.home}/.josm/plugins">
-            <and>
-                <os family="windows"/>
-            </and>
-        </condition>
-        <copy file="${plugin.jar}" todir="${josm.plugins.dir}"/>
-    </target>
-    <!--
-    ************************** Publishing the plugin *********************************** 
+    <property name="plugin.main.version" value="10279"/>
+
+    <!-- Configure these properties (replace "..." accordingly).
+         See https://josm.openstreetmap.de/wiki/DevelopersGuide/DevelopingPlugins
     -->
-    <!--
-        ** extracts the JOSM release for the JOSM version in ../core and saves it in the 
-        ** property ${coreversion.info.entry.revision}
-        **
-        -->
-    <target name="core-info">
-        <exec append="false" output="core.info.xml" executable="svn" failifexecutionfails="false">
-            <env key="LANG" value="C"/>
-            <arg value="info"/>
-            <arg value="--xml"/>
-            <arg value="../../core"/>
-        </exec>
-        <xmlproperty file="core.info.xml" prefix="coreversion" keepRoot="true" collapseAttributes="true"/>
-        <echo>Building against core revision ${coreversion.info.entry.revision}.</echo>
-        <echo>Plugin-Mainversion is set to ${plugin.main.version}.</echo>
-        <delete file="core.info.xml"/>
-    </target>
-    <!--
-        ** commits the source tree for this plugin
-        -->
-    <target name="commit-current">
-        <echo>Commiting the plugin source with message '${commit.message}' ...</echo>
-        <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
-            <env key="LANG" value="C"/>
-            <arg value="commit"/>
-            <arg value="-m '${commit.message}'"/>
-            <arg value="."/>
-        </exec>
-    </target>
-    <!--
-        ** updates (svn up) the source tree for this plugin
-        -->
-    <target name="update-current">
-        <echo>Updating plugin source ...</echo>
-        <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
-            <env key="LANG" value="C"/>
-            <arg value="up"/>
-            <arg value="."/>
-        </exec>
-        <echo>Updating ${plugin.jar} ...</echo>
-        <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
-            <env key="LANG" value="C"/>
-            <arg value="up"/>
-            <arg value="../dist/${plugin.jar}"/>
-        </exec>
-    </target>
-    <!--
-        ** commits the plugin.jar 
-        -->
-    <target name="commit-dist">
-        <echo>
-    ***** Properties of published ${plugin.jar} *****
-    Commit message    : '${commit.message}'                 
-    Plugin-Mainversion: ${plugin.main.version}
-    JOSM build version: ${coreversion.info.entry.revision}
-    Plugin-Version    : ${version.entry.commit.revision}
-    ***** / Properties of published ${plugin.jar} *****                 
-                        
-    Now commiting ${plugin.jar} ...
-    </echo>
-        <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
-            <env key="LANG" value="C"/>
-            <arg value="-m '${commit.message}'"/>
-            <arg value="commit"/>
-            <arg value="${plugin.jar}"/>
-        </exec>
-    </target>
-    <!-- ** make sure svn is present as a command line tool ** -->
-    <target name="ensure-svn-present">
-        <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false" failonerror="false" resultproperty="svn.exit.code">
-            <env key="LANG" value="C"/>
-            <arg value="--version"/>
-        </exec>
-        <fail message="Fatal: command 'svn --version' failed. Please make sure svn is installed on your system.">
-            <!-- return code not set at all? Most likely svn isn't installed -->
-            <condition>
-                <not>
-                    <isset property="svn.exit.code"/>
-                </not>
-            </condition>
-        </fail>
-        <fail message="Fatal: command 'svn --version' failed. Please make sure a working copy of svn is installed on your system.">
-            <!-- error code from SVN? Most likely svn is not what we are looking on this system -->
-            <condition>
-                <isfailure code="${svn.exit.code}"/>
-            </condition>
-        </fail>
-    </target>
-    <target name="publish" depends="ensure-svn-present,core-info,commit-current,update-current,clean,dist,commit-dist">
-    </target>
+    <property name="plugin.author" value="Christof Dallermassl"/>
+    <property name="plugin.class" value="at.dallermassl.josm.plugin.openvisible.OpenVisiblePlugin"/>
+    <property name="plugin.description" value="Allows opening gpx/osm files that intersect the currently visible screen area"/>
+    <property name="plugin.icon" value="images/openvisible.png"/>
+    <!--<property name="plugin.link" value="..."/>-->
+    <!--<property name="plugin.early" value="..."/>-->
+    <!--<property name="plugin.requires" value="..."/>-->
+    <property name="plugin.stage" value="50"/>
+
+    <!-- ** include targets that all plugins have in common ** -->
+    <import file="../build-common.xml"/>
+  
 </project>
diff --git a/openvisible/src/at/dallermassl/josm/plugin/openvisible/OpenVisibleAction.java b/openvisible/src/at/dallermassl/josm/plugin/openvisible/OpenVisibleAction.java
index fcc7cdb..b1e2799 100644
--- a/openvisible/src/at/dallermassl/josm/plugin/openvisible/OpenVisibleAction.java
+++ b/openvisible/src/at/dallermassl/josm/plugin/openvisible/OpenVisibleAction.java
@@ -108,7 +108,7 @@ public class OpenVisibleAction extends JosmAction {
         if (new OsmImporter().acceptFile(file)) {
             DataSet dataSet = OsmReader.parseDataSet(new FileInputStream(file), NullProgressMonitor.INSTANCE);
             OsmDataLayer layer = new OsmDataLayer(dataSet, fn, file);
-            Main.main.addLayer(layer);
+            Main.getLayerManager().addLayer(layer);
         }
         else
             JOptionPane.showMessageDialog(Main.parent, fn+": "+tr("Unknown file extension: {0}", fn.substring(fn.lastIndexOf('.')+1)));
@@ -130,8 +130,8 @@ public class OpenVisibleAction extends JosmAction {
             }
             r.getGpxData().storageFile = file;
             GpxLayer gpxLayer = new GpxLayer(r.getGpxData(), fn);
-            Main.main.addLayer(gpxLayer);
-            Main.main.addLayer(new MarkerLayer(r.getGpxData(), tr("Markers from {0}", fn), file, gpxLayer));
+            Main.getLayerManager().addLayer(gpxLayer);
+            Main.getLayerManager().addLayer(new MarkerLayer(r.getGpxData(), tr("Markers from {0}", fn), file, gpxLayer));
 
         } else {
             throw new IllegalStateException();
diff --git a/routing/.project b/routing/.project
index 29a1851..e758683 100644
--- a/routing/.project
+++ b/routing/.project
@@ -10,6 +10,11 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.jdt.core.javanature</nature>
diff --git a/routing/.settings/org.eclipse.jdt.ui.prefs b/routing/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..396e2f5
--- /dev/null
+++ b/routing/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,60 @@
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_functional_interfaces=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=true
+sp_cleanup.format_source_code=false
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.insert_inferred_type_arguments=false
+sp_cleanup.make_local_variable_final=true
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_redundant_type_arguments=true
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=false
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_anonymous_class_creation=false
+sp_cleanup.use_blocks=false
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_lambda=true
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+sp_cleanup.use_type_arguments=false
diff --git a/routing/build.xml b/routing/build.xml
index e8e2ce9..b12c736 100644
--- a/routing/build.xml
+++ b/routing/build.xml
@@ -4,7 +4,7 @@
     <!-- enter the SVN commit message -->
     <property name="commit.message" value="added one-way support in roundabouts"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="7001"/>
+    <property name="plugin.main.version" value="10279"/>
 
     <!--
     **********************************************************
diff --git a/routing/src/com/innovant/josm/jrt/core/RoutingGraph.java b/routing/src/com/innovant/josm/jrt/core/RoutingGraph.java
index f0ac693..3b060a0 100644
--- a/routing/src/com/innovant/josm/jrt/core/RoutingGraph.java
+++ b/routing/src/com/innovant/josm/jrt/core/RoutingGraph.java
@@ -253,9 +253,9 @@ public class RoutingGraph {
         if (fromLL == null || toLL == null) {
             return;
         }
-        double length = fromLL.greatCircleDistance(toLL);
 
         OsmEdge edge = new OsmEdge(way, from, to);
+        double length = edge.getLength();
         edge.setSpeed(12.1);
         graph.addEdge(from, to, edge);
         // weight = getWeight(way);
@@ -349,7 +349,7 @@ public class RoutingGraph {
         List<OsmEdge> path = new ArrayList<>();
         Graph<Node,OsmEdge> g;
         double totalWeight = 0;
-        RoutingLayer layer = (RoutingLayer)Main.map.mapView.getActiveLayer();
+        RoutingLayer layer = (RoutingLayer)Main.getLayerManager().getActiveLayer();
         RoutingModel routingModel = layer.getRoutingModel();
 
         if (graph == null || routingModel.getOnewayChanged())
diff --git a/routing/src/com/innovant/josm/plugin/routing/RoutingLayer.java b/routing/src/com/innovant/josm/plugin/routing/RoutingLayer.java
index 7a7b1f2..f8f0190 100644
--- a/routing/src/com/innovant/josm/plugin/routing/RoutingLayer.java
+++ b/routing/src/com/innovant/josm/plugin/routing/RoutingLayer.java
@@ -220,7 +220,7 @@ public class RoutingLayer extends Layer {
 
     @Override
     public void paint(Graphics2D g, MapView mv, Bounds bounds) {
-        boolean isActiveLayer = (mv.getActiveLayer().equals(this));
+        boolean isActiveLayer = (mv.getLayerManager().getActiveLayer().equals(this));
         // Get routing nodes (start, middle, end)
         List<Node> nodes = routingModel.getSelectedNodes();
 
diff --git a/routing/src/com/innovant/josm/plugin/routing/RoutingPlugin.java b/routing/src/com/innovant/josm/plugin/routing/RoutingPlugin.java
index 79ab208..cc99b2a 100644
--- a/routing/src/com/innovant/josm/plugin/routing/RoutingPlugin.java
+++ b/routing/src/com/innovant/josm/plugin/routing/RoutingPlugin.java
@@ -41,9 +41,11 @@ import org.openstreetmap.josm.data.osm.event.DatasetEventManager;
 import org.openstreetmap.josm.data.osm.event.DatasetEventManager.FireMode;
 import org.openstreetmap.josm.gui.IconToggleButton;
 import org.openstreetmap.josm.gui.MapFrame;
-import org.openstreetmap.josm.gui.MapView;
-import org.openstreetmap.josm.gui.MapView.LayerChangeListener;
 import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent;
+import org.openstreetmap.josm.gui.layer.LayerManager.LayerChangeListener;
+import org.openstreetmap.josm.gui.layer.LayerManager.LayerOrderChangeEvent;
+import org.openstreetmap.josm.gui.layer.LayerManager.LayerRemoveEvent;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
 import org.openstreetmap.josm.plugins.Plugin;
@@ -64,7 +66,7 @@ import com.innovant.josm.plugin.routing.gui.RoutingPreferenceDialog;
  *
  * @version 0.3
  */
-public class RoutingPlugin extends Plugin implements LayerChangeListener,DataSetListenerAdapter.Listener {
+public class RoutingPlugin extends Plugin implements LayerChangeListener, DataSetListenerAdapter.Listener {
     /**
      * Logger
      */
@@ -151,7 +153,7 @@ public class RoutingPlugin extends Plugin implements LayerChangeListener,DataSet
         // Add menu
         menu = new RoutingMenu();
         // Register this class as LayerChangeListener
-        MapView.addLayerChangeListener(this);
+        Main.getLayerManager().addLayerChangeListener(this);
         DatasetEventManager.getInstance().addDatasetListener(datasetAdapter, FireMode.IN_EDT_CONSOLIDATED);
         logger.debug("Finished loading plugin");
     }
@@ -173,11 +175,11 @@ public class RoutingPlugin extends Plugin implements LayerChangeListener,DataSet
     }
 
     public void addLayer() {
-        OsmDataLayer osmLayer = Main.main.getEditLayer();
+        OsmDataLayer osmLayer = Main.getLayerManager().getEditLayer();
         if (osmLayer != null) {
             RoutingLayer layer = new RoutingLayer(tr("Routing") + " [" + osmLayer.getName() + "]", osmLayer);
             layers.add(layer);
-            Main.main.addLayer(layer);
+            Main.getLayerManager().addLayer(layer);
         }
     }
 
@@ -227,7 +229,14 @@ public class RoutingPlugin extends Plugin implements LayerChangeListener,DataSet
         }
     }
 
-    public void layerAdded(Layer newLayer) {
+    @Override
+    public void layerOrderChanged(LayerOrderChangeEvent e) {
+        // Do nothing
+    }
+
+    @Override
+    public void layerAdded(LayerAddEvent evt) {
+        Layer newLayer = evt.getAddedLayer();
         // Add button(s) to the tool bar when the routing layer is added
         if (newLayer instanceof RoutingLayer) {
             menu.enableRestOfItems();
@@ -237,7 +246,9 @@ public class RoutingPlugin extends Plugin implements LayerChangeListener,DataSet
         }
     }
 
-    public void layerRemoved(Layer oldLayer) {
+    @Override
+    public void layerRemoving(LayerRemoveEvent evt) {
+        Layer oldLayer = evt.getRemovedLayer();
         if ((oldLayer instanceof RoutingLayer) & (layers.size()==1)) {
             // Remove button(s) from the tool bar when the last routing layer is removed
             addRouteNodeButton.setVisible(false);
@@ -255,8 +266,9 @@ public class RoutingPlugin extends Plugin implements LayerChangeListener,DataSet
                 if (layersArray[i].getDataLayer().equals(oldLayer)) {
                     try {
                         // Remove layer
-                        Main.main.removeLayer(layersArray[i]);
+                        Main.getLayerManager().removeLayer(layersArray[i]);
                     } catch (IllegalArgumentException e) {
+                        Main.error(e);
                     }
                 }
             }
@@ -267,6 +279,7 @@ public class RoutingPlugin extends Plugin implements LayerChangeListener,DataSet
         }
     }
 
+    @Override
     public void processDatasetEvent(AbstractDatasetChangedEvent event){
 
     }
diff --git a/routing/src/com/innovant/josm/plugin/routing/actions/AddRouteNodeAction.java b/routing/src/com/innovant/josm/plugin/routing/actions/AddRouteNodeAction.java
index ccb59d6..acdb4b5 100644
--- a/routing/src/com/innovant/josm/plugin/routing/actions/AddRouteNodeAction.java
+++ b/routing/src/com/innovant/josm/plugin/routing/actions/AddRouteNodeAction.java
@@ -82,8 +82,8 @@ public class AddRouteNodeAction extends MapMode {
         if (e.getButton() == MouseEvent.BUTTON1) {
             // Search for nearest highway node
             Node node = null;
-            if (Main.map.mapView.getActiveLayer() instanceof RoutingLayer) {
-                RoutingLayer layer = (RoutingLayer)Main.map.mapView.getActiveLayer();
+            if (Main.getLayerManager().getActiveLayer() instanceof RoutingLayer) {
+                RoutingLayer layer = (RoutingLayer)Main.getLayerManager().getActiveLayer();
                 node = layer.getNearestHighwayNode(e.getPoint());
                 if(node == null) {
                     logger.debug("no selected node");
diff --git a/routing/src/com/innovant/josm/plugin/routing/actions/MoveRouteNodeAction.java b/routing/src/com/innovant/josm/plugin/routing/actions/MoveRouteNodeAction.java
index 10a8d12..55aabd6 100644
--- a/routing/src/com/innovant/josm/plugin/routing/actions/MoveRouteNodeAction.java
+++ b/routing/src/com/innovant/josm/plugin/routing/actions/MoveRouteNodeAction.java
@@ -95,9 +95,9 @@ public class MoveRouteNodeAction extends MapMode {
     @Override public void mousePressed(MouseEvent e) {
         // If left button is pressed
         if (e.getButton() == MouseEvent.BUTTON1) {
-            if (Main.map.mapView.getActiveLayer() instanceof RoutingLayer) {
+            if (Main.getLayerManager().getActiveLayer() instanceof RoutingLayer) {
                 requestFocusInMapView();
-                RoutingLayer layer = (RoutingLayer)Main.map.mapView.getActiveLayer();
+                RoutingLayer layer = (RoutingLayer)Main.getLayerManager().getActiveLayer();
                 RoutingModel routingModel = layer.getRoutingModel();
                 // Search for the nearest node in the list
                 List<Node> nl = routingModel.getSelectedNodes();
@@ -128,8 +128,8 @@ public class MoveRouteNodeAction extends MapMode {
     }
 
     private void searchAndReplaceNode(Point point) {
-        if (Main.map.mapView.getActiveLayer() instanceof RoutingLayer) {
-            RoutingLayer layer = (RoutingLayer)Main.map.mapView.getActiveLayer();
+        if (Main.getLayerManager().getActiveLayer() instanceof RoutingLayer) {
+            RoutingLayer layer = (RoutingLayer)Main.getLayerManager().getActiveLayer();
             RoutingModel routingModel = layer.getRoutingModel();
             RoutingDialog routingDialog = RoutingPlugin.getInstance().getRoutingDialog();
             // Search for nearest highway node
diff --git a/routing/src/com/innovant/josm/plugin/routing/actions/RemoveRouteNodeAction.java b/routing/src/com/innovant/josm/plugin/routing/actions/RemoveRouteNodeAction.java
index 0b4193a..50bb001 100644
--- a/routing/src/com/innovant/josm/plugin/routing/actions/RemoveRouteNodeAction.java
+++ b/routing/src/com/innovant/josm/plugin/routing/actions/RemoveRouteNodeAction.java
@@ -83,8 +83,8 @@ public class RemoveRouteNodeAction extends MapMode {
     @Override public void mouseClicked(MouseEvent e) {
         // If left button is clicked
         if (e.getButton() == MouseEvent.BUTTON1) {
-            if (Main.map.mapView.getActiveLayer() instanceof RoutingLayer) {
-                RoutingLayer layer = (RoutingLayer)Main.map.mapView.getActiveLayer();
+            if (Main.getLayerManager().getActiveLayer() instanceof RoutingLayer) {
+                RoutingLayer layer = (RoutingLayer)Main.getLayerManager().getActiveLayer();
                 RoutingModel routingModel = layer.getRoutingModel();
                 // Search for the nearest node in the list
                 List<Node> nl = routingModel.getSelectedNodes();
diff --git a/routing/src/com/innovant/josm/plugin/routing/gui/RoutingDialog.java b/routing/src/com/innovant/josm/plugin/routing/gui/RoutingDialog.java
index 792d0b4..2782823 100644
--- a/routing/src/com/innovant/josm/plugin/routing/gui/RoutingDialog.java
+++ b/routing/src/com/innovant/josm/plugin/routing/gui/RoutingDialog.java
@@ -130,8 +130,8 @@ public class RoutingDialog extends ToggleDialog {
 
     public void refresh() {
         clearNodes();
-        if (Main.map.mapView.getActiveLayer() instanceof RoutingLayer) {
-            RoutingLayer routingLayer = (RoutingLayer)Main.map.mapView.getActiveLayer();
+        if (Main.getLayerManager().getActiveLayer() instanceof RoutingLayer) {
+            RoutingLayer routingLayer = (RoutingLayer)Main.getLayerManager().getActiveLayer();
             RoutingModel routingModel = routingLayer.getRoutingModel();
             for (Node n : routingModel.getSelectedNodes()) {
                 addNode(n);
diff --git a/routing/src/com/innovant/josm/plugin/routing/gui/RoutingMenu.java b/routing/src/com/innovant/josm/plugin/routing/gui/RoutingMenu.java
index c4c24f7..9bd84cd 100644
--- a/routing/src/com/innovant/josm/plugin/routing/gui/RoutingMenu.java
+++ b/routing/src/com/innovant/josm/plugin/routing/gui/RoutingMenu.java
@@ -92,8 +92,8 @@ public class RoutingMenu extends JMenu {
         rshorter.setSelected(true);
         rshorter.addItemListener(new ItemListener() {
             public void itemStateChanged(ItemEvent e) {
-                if (Main.map.mapView.getActiveLayer() instanceof RoutingLayer) {
-                    RoutingLayer layer = (RoutingLayer)Main.map.mapView.getActiveLayer();
+                if (Main.getLayerManager().getActiveLayer() instanceof RoutingLayer) {
+                    RoutingLayer layer = (RoutingLayer)Main.getLayerManager().getActiveLayer();
                     RoutingModel routingModel = layer.getRoutingModel();
                     if (e.getStateChange()==ItemEvent.SELECTED) {
                         routingModel.routingGraph.setTypeRoute(RouteType.SHORTEST);
@@ -121,8 +121,8 @@ public class RoutingMenu extends JMenu {
         JCheckBoxMenuItem cbmi = new JCheckBoxMenuItem(tr("Ignore oneways"));
         cbmi.addItemListener(new ItemListener() {
             public void itemStateChanged(ItemEvent e) {
-                if (Main.map.mapView.getActiveLayer() instanceof RoutingLayer) {
-                    RoutingLayer layer = (RoutingLayer)Main.map.mapView.getActiveLayer();
+                if (Main.getLayerManager().getActiveLayer() instanceof RoutingLayer) {
+                    RoutingLayer layer = (RoutingLayer)Main.getLayerManager().getActiveLayer();
                     RoutingModel routingModel = layer.getRoutingModel();
                     if (e.getStateChange()==ItemEvent.SELECTED)
                         routingModel.routingGraph.getRoutingProfile().setOnewayUse(false);
@@ -141,8 +141,8 @@ public class RoutingMenu extends JMenu {
         reverseMI = new JMenuItem(tr("Reverse route"));
         reverseMI.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent e) {
-                if (Main.map.mapView.getActiveLayer() instanceof RoutingLayer) {
-                    RoutingLayer layer = (RoutingLayer)Main.map.mapView.getActiveLayer();
+                if (Main.getLayerManager().getActiveLayer() instanceof RoutingLayer) {
+                    RoutingLayer layer = (RoutingLayer)Main.getLayerManager().getActiveLayer();
                     RoutingModel routingModel = layer.getRoutingModel();
                     routingModel.reverseNodes();
                     Main.map.repaint();
@@ -154,8 +154,8 @@ public class RoutingMenu extends JMenu {
         clearMI = new JMenuItem(tr("Clear route"));
         clearMI.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent e) {
-                if (Main.map.mapView.getActiveLayer() instanceof RoutingLayer) {
-                    RoutingLayer layer = (RoutingLayer)Main.map.mapView.getActiveLayer();
+                if (Main.getLayerManager().getActiveLayer() instanceof RoutingLayer) {
+                    RoutingLayer layer = (RoutingLayer)Main.getLayerManager().getActiveLayer();
                     RoutingModel routingModel = layer.getRoutingModel();
                     // Reset routing nodes and paths
                     routingModel.reset();
@@ -170,8 +170,8 @@ public class RoutingMenu extends JMenu {
         regraphMI.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent e) {
 
-                if (Main.map.mapView.getActiveLayer() instanceof RoutingLayer) {
-                    RoutingLayer layer = (RoutingLayer)Main.map.mapView.getActiveLayer();
+                if (Main.getLayerManager().getActiveLayer() instanceof RoutingLayer) {
+                    RoutingLayer layer = (RoutingLayer)Main.getLayerManager().getActiveLayer();
                     RoutingModel routingModel = layer.getRoutingModel();
                     routingModel.routingGraph.resetGraph();
                     routingModel.routingGraph.createGraph();
diff --git a/svn-info.xml b/svn-info.xml
index 3c0dd4b..f7fa8d3 100644
--- a/svn-info.xml
+++ b/svn-info.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <info>
 <entry
-   kind="dir"
    path="plugins"
-   revision="32221">
+   revision="32641"
+   kind="dir">
 <url>https://svn.openstreetmap.org/applications/editors/josm/plugins</url>
 <relative-url>^/applications/editors/josm/plugins</relative-url>
 <repository>
@@ -11,9 +11,9 @@
 <uuid>b9d5c4c9-76e1-0310-9c85-f3177eceb1e4</uuid>
 </repository>
 <commit
-   revision="32221">
-<author>darya</author>
-<date>2016-06-06T14:59:05.290097Z</date>
+   revision="32639">
+<author>donvip</author>
+<date>2016-07-11T21:08:37.032440Z</date>
 </commit>
 </entry>
 </info>

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/josm-plugins.git



More information about the Pkg-grass-devel mailing list