Index: /trunk/src/org/openstreetmap/josm/gui/MainMenu.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/MainMenu.java	(revision 16822)
+++ /trunk/src/org/openstreetmap/josm/gui/MainMenu.java	(revision 16823)
@@ -125,4 +125,5 @@
 import org.openstreetmap.josm.data.UndoRedoHandler;
 import org.openstreetmap.josm.gui.dialogs.MenuItemSearchDialog;
+import org.openstreetmap.josm.gui.io.OnlineResourceMenu;
 import org.openstreetmap.josm.gui.io.RecentlyOpenedFilesMenu;
 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent;
@@ -755,4 +756,5 @@
         add(fileMenu, closeChangesetAction, true);
         fileMenu.addSeparator();
+        fileMenu.add(new OnlineResourceMenu());
         add(fileMenu, restart);
         add(fileMenu, exit);
Index: /trunk/src/org/openstreetmap/josm/gui/io/OnlineResourceMenu.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/io/OnlineResourceMenu.java	(revision 16823)
+++ /trunk/src/org/openstreetmap/josm/gui/io/OnlineResourceMenu.java	(revision 16823)
@@ -0,0 +1,97 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.io;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.Component;
+import java.awt.event.ActionEvent;
+
+import javax.swing.JCheckBoxMenuItem;
+import javax.swing.JMenu;
+import javax.swing.JMenuItem;
+import javax.swing.event.MenuEvent;
+import javax.swing.event.MenuListener;
+
+import org.openstreetmap.josm.actions.ToggleAction;
+import org.openstreetmap.josm.io.NetworkManager;
+import org.openstreetmap.josm.io.OnlineResource;
+
+/**
+ * Show list of {@link OnlineResource} to set online/offline via {@link NetworkManager}.
+ * @since 16823
+ */
+public class OnlineResourceMenu extends JMenu {
+
+    /**
+     * Constructs a new {@link OnlineResourceMenu}
+     */
+    public OnlineResourceMenu() {
+        super(tr("Work Offline..."));
+        setToolTipText(tr("Block network access to resources"));
+        addMenuListener(new ToggleMenuListener());
+
+        for (OnlineResource onlineResource : OnlineResource.values()) {
+            ToggleOnlineResourceAction action = new ToggleOnlineResourceAction(onlineResource);
+            JCheckBoxMenuItem item = new JCheckBoxMenuItem(action);
+            action.addButtonModel(item.getModel());
+            add(item);
+        }
+    }
+
+    private static class ToggleOnlineResourceAction extends ToggleAction {
+        private final OnlineResource onlineResource;
+
+        ToggleOnlineResourceAction(OnlineResource onlineResource) {
+            super(onlineResource.getLocName(), null, null, null, false);
+            this.onlineResource = onlineResource;
+            setToolbarId("menu:offline:" + onlineResource.name());
+            updateSelectedState();
+        }
+
+        @Override
+        public void actionPerformed(ActionEvent e) {
+            if (isOffline()) {
+                NetworkManager.setOnline(onlineResource);
+            } else {
+                NetworkManager.setOffline(onlineResource);
+            }
+            updateSelectedState();
+        }
+
+        private void updateSelectedState() {
+            setEnabled(onlineResource == OnlineResource.ALL || !NetworkManager.isOffline(OnlineResource.ALL));
+            setSelected(isOffline());
+            notifySelectedState();
+        }
+
+        private boolean isOffline() {
+            return NetworkManager.isOffline(onlineResource);
+        }
+
+        @Override
+        protected boolean listenToSelectionChange() {
+            return false;
+        }
+    }
+
+    private class ToggleMenuListener implements MenuListener {
+        @Override
+        public void menuSelected(MenuEvent e) {
+            for (Component component : getMenuComponents()) {
+                JMenuItem menuItem = (JMenuItem) component;
+                ToggleOnlineResourceAction action = (ToggleOnlineResourceAction) menuItem.getAction();
+                action.updateSelectedState();
+            }
+        }
+
+        @Override
+        public void menuDeselected(MenuEvent e) {
+            // Do nothing
+        }
+
+        @Override
+        public void menuCanceled(MenuEvent e) {
+            // Do nothing
+        }
+    }
+}
