Index: /applications/editors/josm/plugins/wikipedia/build.xml
===================================================================
--- /applications/editors/josm/plugins/wikipedia/build.xml	(revision 33540)
+++ /applications/editors/josm/plugins/wikipedia/build.xml	(revision 33541)
@@ -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="12663"/>
     <property name="plugin.canloadatruntime" value="true"/>
 
Index: /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaApp.java
===================================================================
--- /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaApp.java	(revision 33540)
+++ /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaApp.java	(revision 33541)
@@ -34,4 +34,5 @@
 import org.openstreetmap.josm.gui.datatransfer.ClipboardUtils;
 import org.openstreetmap.josm.tools.HttpClient;
+import org.openstreetmap.josm.tools.Logging;
 import org.openstreetmap.josm.tools.Utils;
 import org.w3c.dom.Document;
@@ -193,5 +194,5 @@
                             status.put(x[0], "1".equals(x[1]));
                         } else {
-                            Main.error("Unknown element " + line);
+                            Logging.error("Unknown element " + line);
                         }
                     });
@@ -483,6 +484,6 @@
             return DocumentBuilderFactory.newInstance().newDocumentBuilder();
         } catch (ParserConfigurationException e) {
-            Main.warn("Cannot create DocumentBuilder");
-            Main.warn(e);
+        	Logging.warn("Cannot create DocumentBuilder");
+        	Logging.warn(e);
             throw new RuntimeException(e);
         }
Index: /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaPlugin.java
===================================================================
--- /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaPlugin.java	(revision 33540)
+++ /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaPlugin.java	(revision 33541)
@@ -2,5 +2,7 @@
 package org.wikipedia;
 
-import org.openstreetmap.josm.Main;
+import javax.swing.JMenu;
+
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.MainMenu;
 import org.openstreetmap.josm.gui.MapFrame;
@@ -19,7 +21,8 @@
         super(info);
         new WikipediaCopyTemplate();
-        MainMenu.add(Main.main.menu.dataMenu, new WikipediaAddNamesAction());
-        MainMenu.add(Main.main.menu.dataMenu, new FetchWikidataAction());
-        MainMenu.add(Main.main.menu.dataMenu, new WikidataItemSearchDialog.Action());
+        JMenu dataMenu = MainApplication.getMenu().dataMenu;
+        MainMenu.add(dataMenu, new WikipediaAddNamesAction());
+        MainMenu.add(dataMenu, new FetchWikidataAction());
+        MainMenu.add(dataMenu, new WikidataItemSearchDialog.Action());
     }
 
Index: /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/actions/FetchWikidataAction.java
===================================================================
--- /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/actions/FetchWikidataAction.java	(revision 33540)
+++ /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/actions/FetchWikidataAction.java	(revision 33541)
@@ -23,7 +23,9 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.gui.ConditionalOptionPaneUtil;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.Notification;
 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
+import org.openstreetmap.josm.tools.Logging;
 import org.openstreetmap.josm.tools.MultiMap;
 import org.openstreetmap.josm.tools.Utils;
@@ -45,5 +47,5 @@
             return;
         }
-        Main.worker.submit(new Fetcher(ds.getSelected()));
+        MainApplication.worker.submit(new Fetcher(ds.getSelected()));
     }
 
@@ -99,5 +101,5 @@
         protected void finish() {
             if (!canceled && !commands.isEmpty()) {
-                Main.main.undoRedo.add(commands.size() == 1 ? commands.get(0) : new SequenceCommand(tr("Add Wikidata"), commands));
+                MainApplication.undoRedo.add(commands.size() == 1 ? commands.get(0) : new SequenceCommand(tr("Add Wikidata"), commands));
             }
             if (!canceled && !notFound.isEmpty()) {
@@ -140,5 +142,5 @@
                 } else {
                     final WikipediaEntry article = new WikipediaEntry(lang, wikipedia);
-                    Main.warn(tr("No Wikidata ID found for: {0}", article));
+                    Logging.warn(tr("No Wikidata ID found for: {0}", article));
                     notFound.add(article);
                 }
Index: /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/actions/WikipediaAddNamesAction.java
===================================================================
--- /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/actions/WikipediaAddNamesAction.java	(revision 33540)
+++ /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/actions/WikipediaAddNamesAction.java	(revision 33541)
@@ -16,4 +16,5 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.io.remotecontrol.AddTagsDialog;
+import org.openstreetmap.josm.tools.Logging;
 import org.wikipedia.WikipediaApp;
 import org.wikipedia.data.WikipediaEntry;
@@ -35,6 +36,6 @@
                 .map(i -> new String[]{"name:" + i.lang, i.article})
                 .forEach(tags::add);
-        if (Main.isDebugEnabled()) {
-            Main.debug(tags.toString());
+        if (Logging.isDebugEnabled()) {
+        	Logging.debug(tags.toString());
         }
         AddTagsDialog.addTags(tags.toArray(new String[tags.size()][]), "Wikipedia", getLayerManager().getEditDataSet().getSelected());
Index: /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/actions/WikipediaCopyTemplate.java
===================================================================
--- /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/actions/WikipediaCopyTemplate.java	(revision 33540)
+++ /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/actions/WikipediaCopyTemplate.java	(revision 33541)
@@ -18,4 +18,5 @@
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.MainMenu;
 import org.openstreetmap.josm.gui.datatransfer.ClipboardUtils;
@@ -34,8 +35,8 @@
 
     public WikipediaCopyTemplate() {
-        JosmAction previous = Main.main.menu.copyCoordinates;
+        JosmAction previous = MainApplication.getMenu().copyCoordinates;
         for (final CoordCopyTemplateEntry templateEntry : TEMPLATE_ENTRIES) {
             CoordCopyTemplate t = new CoordCopyTemplate(templateEntry);
-            final JMenuItem menu = MainMenu.addAfter(Main.main.menu.editMenu, t, false, previous);
+            final JMenuItem menu = MainMenu.addAfter(MainApplication.getMenu().editMenu, t, false, previous);
             menu.setToolTipText(tr("Copies the {0} template to the system clipboard instantiated with the coordinates of the first selected node", templateEntry.name));
             previous = t;
Index: /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/gui/GuiUtils.java
===================================================================
--- /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/gui/GuiUtils.java	(revision 33540)
+++ /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/gui/GuiUtils.java	(revision 33541)
@@ -3,7 +3,7 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.DefaultNameFormatter;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.gui.ConditionalOptionPaneUtil;
-import org.openstreetmap.josm.gui.DefaultNameFormatter;
 import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.tools.AlphanumComparator;
Index: /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/gui/WikidataItemSearchDialog.java
===================================================================
--- /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/gui/WikidataItemSearchDialog.java	(revision 33540)
+++ /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/gui/WikidataItemSearchDialog.java	(revision 33541)
@@ -25,4 +25,5 @@
 import org.openstreetmap.josm.data.osm.Tag;
 import org.openstreetmap.josm.gui.ExtendedDialog;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletingComboBox;
 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionListItem;
@@ -74,5 +75,5 @@
 
     private void initTargetKeys() {
-        final DataSet editDataSet = Main.getLayerManager().getEditDataSet();
+        final DataSet editDataSet = MainApplication.getLayerManager().getEditDataSet();
         if (editDataSet == null) {
             return;
Index: /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/gui/WikidataTagCellRenderer.java
===================================================================
--- /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/gui/WikidataTagCellRenderer.java	(revision 33540)
+++ /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/gui/WikidataTagCellRenderer.java	(revision 33541)
@@ -21,4 +21,5 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.gui.util.GuiHelper;
+import org.openstreetmap.josm.tools.Logging;
 import org.openstreetmap.josm.tools.Utils;
 import org.wikipedia.WikipediaApp;
@@ -70,6 +71,6 @@
                 label = labelCache.get(id).get();
             } catch (InterruptedException | ExecutionException e) {
-                Main.warn("Could not fetch Wikidata label for " + id);
-                Main.warn(e);
+                Logging.warn("Could not fetch Wikidata label for " + id);
+                Logging.warn(e);
                 return null;
             }
Index: /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/gui/WikipediaToggleDialog.java
===================================================================
--- /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/gui/WikipediaToggleDialog.java	(revision 33540)
+++ /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/gui/WikipediaToggleDialog.java	(revision 33541)
@@ -32,6 +32,9 @@
 import org.openstreetmap.josm.data.osm.event.DatasetEventManager;
 import org.openstreetmap.josm.data.osm.event.DatasetEventManager.FireMode;
+import org.openstreetmap.josm.data.osm.search.SearchMode;
 import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
 import org.openstreetmap.josm.data.preferences.StringProperty;
+import org.openstreetmap.josm.gui.MainApplication;
+import org.openstreetmap.josm.gui.MapView;
 import org.openstreetmap.josm.gui.SideButton;
 import org.openstreetmap.josm.gui.dialogs.ToggleDialog;
@@ -40,4 +43,5 @@
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.LanguageInfo;
+import org.openstreetmap.josm.tools.Logging;
 import org.openstreetmap.josm.tools.OpenBrowser;
 import org.wikipedia.WikipediaApp;
@@ -71,13 +75,13 @@
                 @Override
                 public void mouseClicked(MouseEvent e) {
-                    if (e.getClickCount() == 2 && getSelectedValue() != null && Main.getLayerManager().getEditDataSet() != null) {
+                    if (e.getClickCount() == 2 && getSelectedValue() != null && MainApplication.getLayerManager().getEditDataSet() != null) {
                         final WikipediaEntry entry = getSelectedValue();
                         if (entry.coordinate != null) {
                             BoundingXYVisitor bbox = new BoundingXYVisitor();
                             bbox.visit(entry.coordinate);
-                            Main.map.mapView.zoomTo(bbox);
+                            MainApplication.getMap().mapView.zoomTo(bbox);
                         }
                         final String search = entry.getSearchText().replaceAll("\\(.*\\)", "");
-                        SearchAction.search(search, SearchAction.SearchMode.replace);
+                        SearchAction.search(search, SearchMode.replace);
                     }
                 }
@@ -146,6 +150,7 @@
             try {
                 // determine bbox
-                final LatLon min = Main.map.mapView.getLatLon(0, Main.map.mapView.getHeight());
-                final LatLon max = Main.map.mapView.getLatLon(Main.map.mapView.getWidth(), 0);
+            	MapView mapView = MainApplication.getMap().mapView;
+                final LatLon min = mapView.getLatLon(0, mapView.getHeight());
+                final LatLon max = mapView.getLatLon(mapView.getWidth(), 0);
                 // add entries to list model
                 titleContext = tr("coordinates");
@@ -258,5 +263,5 @@
             if (list.getSelectedValue() != null) {
                 final String url = list.getSelectedValue().getBrowserUrl();
-                Main.info("Wikipedia: opening " + url);
+                Logging.info("Wikipedia: opening " + url);
                 OpenBrowser.displayUrl(url);
             }
@@ -313,5 +318,5 @@
                 return;
             }
-            final Collection<OsmPrimitive> selected = Main.getLayerManager().getEditDataSet().getSelected();
+            final Collection<OsmPrimitive> selected = MainApplication.getLayerManager().getEditDataSet().getSelected();
             if (!GuiUtils.confirmOverwrite(tag.getKey(), tag.getValue(), selected)) {
                 return;
@@ -320,6 +325,6 @@
                     selected,
                     tag.getKey(), tag.getValue());
-            Main.main.undoRedo.add(cmd);
-            Main.worker.submit(new FetchWikidataAction.Fetcher(selected));
+            MainApplication.undoRedo.add(cmd);
+            MainApplication.worker.submit(new FetchWikidataAction.Fetcher(selected));
         }
     }
@@ -345,5 +350,5 @@
                 return;
             }
-            Main.map.mapView.zoomTo(latLon);
+            MainApplication.getMap().mapView.zoomTo(latLon);
         }
     }
@@ -352,6 +357,6 @@
         final String language = getLanguageOfFirstItem();
         articles.clear();
-        if (Main.main != null && Main.getLayerManager().getEditDataSet() != null) {
-            Main.getLayerManager().getEditDataSet().allPrimitives().stream()
+        if (Main.main != null && MainApplication.getLayerManager().getEditDataSet() != null) {
+        	MainApplication.getLayerManager().getEditDataSet().allPrimitives().stream()
                     .flatMap(p -> WikipediaApp.forLanguage(language).getWikipediaArticles(p))
                     .forEach(articles::add);
@@ -364,5 +369,5 @@
     public void showNotify() {
         DatasetEventManager.getInstance().addDatasetListener(dataChangedAdapter, FireMode.IN_EDT_CONSOLIDATED);
-        Main.getLayerManager().addActiveLayerChangeListener(this);
+        MainApplication.getLayerManager().addActiveLayerChangeListener(this);
         updateWikipediaArticles();
     }
@@ -371,5 +376,5 @@
     public void hideNotify() {
         DatasetEventManager.getInstance().removeDatasetListener(dataChangedAdapter);
-        Main.getLayerManager().removeActiveLayerChangeListener(this);
+        MainApplication.getLayerManager().removeActiveLayerChangeListener(this);
         articles.clear();
     }
