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

Last change on this file since 4958 was 4958, checked in by stoecker, 12 years ago

fix remaining shortcut deprecations

File size: 1.8 KB
Line 
1package org.openstreetmap.josm.actions;
2
3import static org.openstreetmap.josm.tools.I18n.tr;
4
5import java.awt.event.ActionEvent;
6import java.awt.event.KeyEvent;
7import java.util.Collection;
8import java.util.Collections;
9import org.openstreetmap.josm.data.osm.Node;
10import org.openstreetmap.josm.data.osm.OsmPrimitive;
11import org.openstreetmap.josm.tools.Shortcut;
12import org.openstreetmap.josm.tools.Utils;
13
14public class CopyCoordinatesAction extends JosmAction {
15
16 public CopyCoordinatesAction() {
17 super(tr("Copy Coordinates"), null,
18 tr("Copy coordinates of selected nodes to clipboard."),
19 Shortcut.registerShortcut("copy:coordinates", tr("Edit: {0}", tr("Copy Coordinates")),
20 KeyEvent.VK_C, Shortcut.GROUP_MENU+Shortcut.GROUPS_ALT1),
21 false);
22 putValue("toolbar", "copy/coordinates");
23 }
24
25 @Override
26 public void actionPerformed(ActionEvent ae) {
27 StringBuilder s = new StringBuilder();
28 for (Node n : getSelectedNodes()) {
29 s.append(n.getCoor().lat());
30 s.append(", ");
31 s.append(n.getCoor().lon());
32 s.append("\n");
33 }
34 Utils.copyToClipboard(s.toString().trim());
35 }
36
37 @Override
38 protected void updateEnabledState() {
39 setEnabled(!getSelectedNodes().isEmpty());
40 }
41
42 @Override
43 protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
44 updateEnabledState();
45 }
46
47 private Collection<Node> getSelectedNodes() {
48 if (getCurrentDataSet() == null || getCurrentDataSet().getSelected() == null) {
49 return Collections.emptyList();
50 } else {
51 return Utils.filteredCollection(getCurrentDataSet().getSelected(), Node.class);
52 }
53 }
54}
Note: See TracBrowser for help on using the repository browser.