source: josm/trunk/src/org/openstreetmap/josm/actions/CopyCoordinatesAction.java@ 13106

Last change on this file since 13106 was 13106, checked in by Don-vip, 6 years ago

add some javadoc

  • Property svn:eol-style set to native
File size: 1.9 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.actions;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import java.awt.event.ActionEvent;
7import java.awt.event.KeyEvent;
8import java.util.Collection;
9import java.util.Collections;
10
11import org.openstreetmap.josm.data.osm.DataSet;
12import org.openstreetmap.josm.data.osm.Node;
13import org.openstreetmap.josm.data.osm.OsmPrimitive;
14import org.openstreetmap.josm.gui.datatransfer.ClipboardUtils;
15import org.openstreetmap.josm.tools.Shortcut;
16
17/**
18 * User action to copy the coordinates of one or several node(s) to the clipboard.
19 */
20public class CopyCoordinatesAction extends JosmAction {
21
22 /**
23 * Constructs a new {@code CopyCoordinatesAction}.
24 */
25 public CopyCoordinatesAction() {
26 super(tr("Copy Coordinates"), null,
27 tr("Copy coordinates of selected nodes to clipboard."),
28 Shortcut.registerShortcut("copy:coordinates", tr("Edit: {0}", tr("Copy Coordinates")),
29 KeyEvent.VK_C, Shortcut.CTRL_SHIFT),
30 false);
31 putValue("toolbar", "copy/coordinates");
32 }
33
34 @Override
35 public void actionPerformed(ActionEvent ae) {
36 StringBuilder s = new StringBuilder();
37 for (Node n : getSelectedNodes()) {
38 s.append(n.lat());
39 s.append(", ");
40 s.append(n.lon());
41 s.append('\n');
42 }
43 ClipboardUtils.copyString(s.toString().trim());
44 }
45
46 @Override
47 protected void updateEnabledState() {
48 setEnabled(!getSelectedNodes().isEmpty());
49 }
50
51 @Override
52 protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
53 updateEnabledState();
54 }
55
56 private Collection<Node> getSelectedNodes() {
57 DataSet ds = getLayerManager().getEditDataSet();
58 if (ds == null) {
59 return Collections.emptyList();
60 } else {
61 return ds.getSelectedNodes();
62 }
63 }
64}
Note: See TracBrowser for help on using the repository browser.