From d79a584fe8eb77e9feaaa9c45b374dd6d030db0b Mon Sep 17 00:00:00 2001 From: Andrew Harvey Date: Thu, 31 Jul 2025 13:21:49 +1000 Subject: [PATCH 1/3] new local menu item --- resources/images/new_local.svg | 380 ++++++++++++++++++ .../josm/actions/NewLocalAction.java | 35 ++ 2 files changed, 415 insertions(+) create mode 100644 resources/images/new_local.svg create mode 100644 src/org/openstreetmap/josm/actions/NewLocalAction.java diff --git a/resources/images/new_local.svg b/resources/images/new_local.svg new file mode 100644 index 0000000000..2b75b63c16 --- /dev/null +++ b/resources/images/new_local.svg @@ -0,0 +1,380 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + New Document + + + text + plaintext + regular + document + + + + + + Jakub Steiner + + + http://jimmac.musichall.cz + + + Luca Ferretti + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/org/openstreetmap/josm/actions/NewLocalAction.java b/src/org/openstreetmap/josm/actions/NewLocalAction.java new file mode 100644 index 0000000000..4654394980 --- /dev/null +++ b/src/org/openstreetmap/josm/actions/NewLocalAction.java @@ -0,0 +1,35 @@ +// License: GPL. For details, see LICENSE file. +package org.openstreetmap.josm.actions; + +import static org.openstreetmap.josm.gui.help.HelpUtil.ht; +import static org.openstreetmap.josm.tools.I18n.tr; + +import java.awt.event.ActionEvent; +import java.awt.event.KeyEvent; + +import org.openstreetmap.josm.data.osm.DataSet; +import org.openstreetmap.josm.gui.layer.OsmDataLayer; +import org.openstreetmap.josm.tools.Shortcut; + +/** + * Creates a blank new local OSM data layer. + * @since 169 + */ +public class NewLocalAction extends JosmAction { + + /** + * Constructs a {@code NewLocalAction}. + */ + public NewLocalAction() { + super(tr("New Local Layer"), "new", tr("Create a new local map layer."), + Shortcut.registerShortcut("system:new_local", tr("File: {0}", tr("New Local Layer")), KeyEvent.VK_N, Shortcut.CTRL_SHIFT), true, false); + setHelpId(ht("/Action/NewLocalLayer")); + } + + @Override + public void actionPerformed(ActionEvent e) { + final OsmDataLayer layer = new OsmDataLayer(new DataSet(), OsmDataLayer.createNewName(), null) + layer.setUploadDiscouraged(true) + getLayerManager().addLayer(layer); + } +} From b64c6be2b21bc4523837b404b646f7a89789b8b7 Mon Sep 17 00:00:00 2001 From: Andrew Harvey Date: Thu, 31 Jul 2025 14:37:11 +1000 Subject: [PATCH 2/3] syntax fixes --- src/org/openstreetmap/josm/actions/NewLocalAction.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/org/openstreetmap/josm/actions/NewLocalAction.java b/src/org/openstreetmap/josm/actions/NewLocalAction.java index 4654394980..a444106c27 100644 --- a/src/org/openstreetmap/josm/actions/NewLocalAction.java +++ b/src/org/openstreetmap/josm/actions/NewLocalAction.java @@ -28,8 +28,8 @@ public NewLocalAction() { @Override public void actionPerformed(ActionEvent e) { - final OsmDataLayer layer = new OsmDataLayer(new DataSet(), OsmDataLayer.createNewName(), null) - layer.setUploadDiscouraged(true) + final OsmDataLayer layer = new OsmDataLayer(new DataSet(), OsmDataLayer.createNewName(), null); + layer.setUploadDiscouraged(true); getLayerManager().addLayer(layer); } } From 872f6092b75f587e77e121ddc18196630162bca0 Mon Sep 17 00:00:00 2001 From: Andrew Harvey Date: Thu, 31 Jul 2025 14:46:12 +1000 Subject: [PATCH 3/3] add to menu --- src/org/openstreetmap/josm/actions/NewLocalAction.java | 2 +- src/org/openstreetmap/josm/gui/MainMenu.java | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/org/openstreetmap/josm/actions/NewLocalAction.java b/src/org/openstreetmap/josm/actions/NewLocalAction.java index a444106c27..98dad2a392 100644 --- a/src/org/openstreetmap/josm/actions/NewLocalAction.java +++ b/src/org/openstreetmap/josm/actions/NewLocalAction.java @@ -21,7 +21,7 @@ public class NewLocalAction extends JosmAction { * Constructs a {@code NewLocalAction}. */ public NewLocalAction() { - super(tr("New Local Layer"), "new", tr("Create a new local map layer."), + super(tr("New Local Layer"), "new_local", tr("Create a new local map layer."), Shortcut.registerShortcut("system:new_local", tr("File: {0}", tr("New Local Layer")), KeyEvent.VK_N, Shortcut.CTRL_SHIFT), true, false); setHelpId(ht("/Action/NewLocalLayer")); } diff --git a/src/org/openstreetmap/josm/gui/MainMenu.java b/src/org/openstreetmap/josm/gui/MainMenu.java index e8fbe10c84..3a089782ba 100644 --- a/src/org/openstreetmap/josm/gui/MainMenu.java +++ b/src/org/openstreetmap/josm/gui/MainMenu.java @@ -76,6 +76,7 @@ import org.openstreetmap.josm.actions.MoveAction; import org.openstreetmap.josm.actions.MoveNodeAction; import org.openstreetmap.josm.actions.NewAction; +import org.openstreetmap.josm.actions.NewLocalAction; import org.openstreetmap.josm.actions.OpenFileAction; import org.openstreetmap.josm.actions.OpenLocationAction; import org.openstreetmap.josm.actions.OrthogonalizeAction; @@ -167,6 +168,8 @@ public enum WINDOW_MENU_GROUP { /* File menu */ /** File / New Layer **/ public final NewAction newAction = new NewAction(); + /** File / New Local Layer **/ + public final NewLocalAction newLocalAction = new NewLocalAction(); /** File / Open... **/ public final OpenFileAction openFile = new OpenFileAction(); /** File / Open Recent > **/ @@ -740,6 +743,7 @@ public void initialize() { gpsMenu.setVisible(false); add(fileMenu, newAction); + add(fileMenu, newLocalAction); add(fileMenu, openFile); fileMenu.add(recentlyOpened); add(fileMenu, openLocation);