source: osm/applications/editors/josm/plugins/HouseNumberTaggingTool/src/org/openstreetmap/josm/plugins/housenumbertool/LaunchAction.java

Last change on this file was 36060, checked in by taylor.smock, 14 months ago

Fix #22667: Add i18n support for HouseNumberTaggingTool data menu entry (patch by holgermappt, modified)

The additional modifications include:

  • Lint cleanups
  • Code deduplication
  • Checkstyle fixes
File size: 2.1 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.plugins.housenumbertool;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import java.awt.event.ActionEvent;
7import java.awt.event.KeyEvent;
8import java.io.File;
9import java.util.Set;
10
11import org.openstreetmap.josm.actions.JosmAction;
12import org.openstreetmap.josm.data.osm.DataSelectionListener;
13import org.openstreetmap.josm.data.osm.OsmPrimitive;
14import org.openstreetmap.josm.data.osm.event.SelectionEventManager;
15import org.openstreetmap.josm.tools.Shortcut;
16
17/**
18 * An action for opening the {@link TagDialog} editor
19 */
20public class LaunchAction extends JosmAction implements DataSelectionListener {
21
22 private static final long serialVersionUID = -2017126466206457986L;
23 private OsmPrimitive selection;
24
25 private final File pluginDir;
26
27 /**
28 * Constructs a new {@code LaunchAction}.
29 * @param pluginDir plugin directory
30 */
31 public LaunchAction(File pluginDir) {
32 super(tr("HouseNumberTaggingTool"),
33 "home-icon32",
34 tr("Launches the HouseNumberTaggingTool dialog"),
35 Shortcut.registerShortcut("edit:housenumbertaggingtool", tr("Data: {0}", "HouseNumberTaggingTool"),
36 KeyEvent.VK_K, Shortcut.DIRECT),
37 true);
38
39 this.pluginDir = pluginDir;
40 SelectionEventManager.getInstance().addSelectionListener(this);
41 setEnabled(false);
42 }
43
44 /**
45 * launch the editor
46 */
47 protected void launchEditor() {
48 if (!isEnabled()) {
49 return;
50 }
51
52 TagDialog dialog = new TagDialog(pluginDir, selection);
53 dialog.showDialog();
54 }
55
56 @Override
57 public void actionPerformed(ActionEvent e) {
58 launchEditor();
59 }
60
61 @Override
62 public void selectionChanged(SelectionChangeEvent event) {
63 Set<OsmPrimitive> newSelection = event.getSelection();
64 if (newSelection != null && newSelection.size() == 1) {
65 setEnabled(true);
66 selection = newSelection.iterator().next();
67 } else {
68 setEnabled(false);
69 selection = null;
70 }
71 }
72}
Note: See TracBrowser for help on using the repository browser.