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

Last change on this file since 12346 was 12314, checked in by michael2402, 7 years ago

Use DataSet getSelectedWays/Nodes helper functions.

  • Property svn:eol-style set to native
File size: 1.8 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
17public class CopyCoordinatesAction extends JosmAction {
18
19 public CopyCoordinatesAction() {
20 super(tr("Copy Coordinates"), null,
21 tr("Copy coordinates of selected nodes to clipboard."),
22 Shortcut.registerShortcut("copy:coordinates", tr("Edit: {0}", tr("Copy Coordinates")),
23 KeyEvent.VK_C, Shortcut.CTRL_SHIFT),
24 false);
25 putValue("toolbar", "copy/coordinates");
26 }
27
28 @Override
29 public void actionPerformed(ActionEvent ae) {
30 StringBuilder s = new StringBuilder();
31 for (Node n : getSelectedNodes()) {
32 s.append(n.lat());
33 s.append(", ");
34 s.append(n.lon());
35 s.append('\n');
36 }
37 ClipboardUtils.copyString(s.toString().trim());
38 }
39
40 @Override
41 protected void updateEnabledState() {
42 setEnabled(!getSelectedNodes().isEmpty());
43 }
44
45 @Override
46 protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
47 updateEnabledState();
48 }
49
50 private Collection<Node> getSelectedNodes() {
51 DataSet ds = getLayerManager().getEditDataSet();
52 if (ds == null) {
53 return Collections.emptyList();
54 } else {
55 return ds.getSelectedNodes();
56 }
57 }
58}
Note: See TracBrowser for help on using the repository browser.