Index: /applications/editors/josm/plugins/graphview/build.xml
===================================================================
--- /applications/editors/josm/plugins/graphview/build.xml	(revision 32343)
+++ /applications/editors/josm/plugins/graphview/build.xml	(revision 32344)
@@ -2,5 +2,5 @@
 <project name="graphview" default="dist" basedir=".">
     <property name="commit.message" value="option to change graph colors; closes ticket 5523 in JOSM Trac"/>
-    <property name="plugin.main.version" value="10031"/>
+    <property name="plugin.main.version" value="10279"/>
 
     <!-- Configure these properties (replace "..." accordingly).
Index: /applications/editors/josm/plugins/graphview/src/org/openstreetmap/josm/plugins/graphview/plugin/GraphViewPlugin.java
===================================================================
--- /applications/editors/josm/plugins/graphview/src/org/openstreetmap/josm/plugins/graphview/plugin/GraphViewPlugin.java	(revision 32343)
+++ /applications/editors/josm/plugins/graphview/src/org/openstreetmap/josm/plugins/graphview/plugin/GraphViewPlugin.java	(revision 32344)
@@ -18,7 +18,8 @@
 import org.openstreetmap.josm.Main;
 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.preferences.PreferenceSetting;
 import org.openstreetmap.josm.plugins.Plugin;
@@ -81,5 +82,4 @@
         preferences = GraphViewPreferences.getInstance();
         this.preferences.addObserver(this);
-
     }
 
@@ -122,28 +122,22 @@
                     graphViewLayer.setNodePositioner(new DefaultNodePositioner());
 
-                    Main.main.addLayer(graphViewLayer);
-
+                    Main.getLayerManager().addLayer(graphViewLayer);
                 }
-
-            }
-
+            }
         } catch (AccessRulesetSyntaxException e) {
             JOptionPane.showMessageDialog(Main.parent, tr("Syntax exception in access ruleset:\n{0}", e));
-            e.printStackTrace();
+            Main.error(e);
         } catch (FileNotFoundException e) {
             JOptionPane.showMessageDialog(Main.parent, tr("File not found:\n{0}", e));
-            e.printStackTrace();
+            Main.error(e);
         } catch (IOException e) {
             JOptionPane.showMessageDialog(Main.parent, tr("Problem when accessing a file:\n{0}", e));
-            e.printStackTrace();
-        }
-
+            Main.error(e);
+        }
     }
 
     /** allows update of GraphViewLayer */
     public void updateGraphViewLayer() {
-
         try {
-
             if (graphViewLayer != null) {
 
@@ -158,27 +152,22 @@
                     transitionStructure.forceUpdate();
                 }
-
-            }
-
+            }
         } catch (AccessRulesetSyntaxException e) {
             JOptionPane.showMessageDialog(Main.parent, tr("Syntax exception in access ruleset:\n{0}", e));
-            e.printStackTrace();
+            Main.error(e);
         } catch (FileNotFoundException e) {
             JOptionPane.showMessageDialog(Main.parent, tr("File not found:\n", e));
-            e.printStackTrace();
+            Main.error(e);
         } catch (IOException e) {
             JOptionPane.showMessageDialog(Main.parent, tr("Problem when accessing a file:\n{0}", e));
-            e.printStackTrace();
-        }
-
+            Main.error(e);
+        }
     }
 
     /** repaints the GraphViewLayer without recalculating the graph (visual update) */
     public void repaintGraphViewLayer() {
-
         if (graphViewLayer != null) {
             graphViewLayer.invalidate();
         }
-
     }
 
@@ -211,5 +200,4 @@
                 throw new FileNotFoundException(tr("Couldn''t find built-in ruleset {0}", ruleset));
             }
-
         } else {
 
@@ -221,9 +209,7 @@
 
             rulesetInputStream = new FileInputStream(rulesetFile);
-
         }
 
         return AccessRulesetReader.readAccessRuleset(rulesetInputStream);
-
     }
 
@@ -241,16 +227,17 @@
                 newFrame.addToggleDialog(laneDialog);
             }
-            MapView.addLayerChangeListener(this);
+            Main.getLayerManager().addLayerChangeListener(this);
         } else {
-            MapView.removeLayerChangeListener(this);
-        }
-    }
-
-    public void layerRemoved(Layer oldLayer) {
-        if (oldLayer == graphViewLayer) {
+            Main.getLayerManager().removeLayerChangeListener(this);
+        }
+    }
+
+    @Override
+    public void layerRemoving(LayerRemoveEvent e) {
+        if (e.getRemovedLayer() == graphViewLayer) {
             graphViewLayer = null;
-        } else if (oldLayer == Main.main.getEditLayer()) { //data layer removed
+        } else if (e.getRemovedLayer() == Main.getLayerManager().getEditLayer()) { //data layer removed
             if (graphViewLayer != null) {
-                Main.main.removeLayer(graphViewLayer);
+                Main.getLayerManager().removeLayer(graphViewLayer);
                 graphViewLayer = null;
             }
@@ -258,20 +245,20 @@
     }
 
-    public void activeLayerChange(Layer oldLayer, Layer newLayer) {
+    @Override
+    public void layerOrderChanged(LayerOrderChangeEvent e) {
         //do nothing
     }
 
-    public void layerAdded(Layer newLayer) {
+    @Override
+    public void layerAdded(LayerAddEvent e) {
         //do nothing
     }
 
+    @Override
     public void update(Observable arg0, Object arg1) {
-        if (arg0 == preferences) {
-            if (graphViewLayer != null) {
-                graphViewLayer.setColorScheme(preferences.getCurrentColorScheme());
-                graphViewLayer.setArrowheadPlacement(preferences.getArrowheadPlacement());
-            }
-        }
-    }
-
+        if (arg0 == preferences && graphViewLayer != null) {
+            graphViewLayer.setColorScheme(preferences.getCurrentColorScheme());
+            graphViewLayer.setArrowheadPlacement(preferences.getArrowheadPlacement());
+        }
+    }
 }
Index: /applications/editors/josm/plugins/graphview/src/org/openstreetmap/josm/plugins/graphview/plugin/data/JOSMDataSource.java
===================================================================
--- /applications/editors/josm/plugins/graphview/src/org/openstreetmap/josm/plugins/graphview/plugin/data/JOSMDataSource.java	(revision 32343)
+++ /applications/editors/josm/plugins/graphview/src/org/openstreetmap/josm/plugins/graphview/plugin/data/JOSMDataSource.java	(revision 32344)
@@ -43,13 +43,13 @@
 
     public Iterable<Node> getNodes() {
-        return new FilteredOsmPrimitiveIterable<>(Main.main.getCurrentDataSet().getNodes());
+        return new FilteredOsmPrimitiveIterable<>(Main.getLayerManager().getEditDataSet().getNodes());
     }
 
     public Iterable<Relation> getRelations() {
-        return new FilteredRelationIterable(Main.main.getCurrentDataSet().getRelations());
+        return new FilteredRelationIterable(Main.getLayerManager().getEditDataSet().getRelations());
     }
 
     public Iterable<Way> getWays() {
-        return new FilteredOsmPrimitiveIterable<>(Main.main.getCurrentDataSet().getWays());
+        return new FilteredOsmPrimitiveIterable<>(Main.getLayerManager().getEditDataSet().getWays());
     }
 
