source: josm/trunk/src/org/openstreetmap/josm/gui/layer/gpx/MarkersFromNamedPointsAction.java

Last change on this file was 13130, checked in by Don-vip, 9 years ago

fix #15572 - use ImageProvider attach API for all JOSM actions to ensure proper icon size everywhere

  • Property svn:eol-style set to native
File size: 1.7 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.layer.gpx;
3
4import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
5import static org.openstreetmap.josm.tools.I18n.tr;
6
7import java.awt.event.ActionEvent;
8
9import javax.swing.AbstractAction;
10
11import org.openstreetmap.josm.data.gpx.GpxData;
12import org.openstreetmap.josm.gui.MainApplication;
13import org.openstreetmap.josm.gui.layer.GpxLayer;
14import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
15import org.openstreetmap.josm.tools.ImageProvider;
16
17/**
18 * An action that converts the named points to a new marker layer
19 */
20public class MarkersFromNamedPointsAction extends AbstractAction {
21 private final transient GpxLayer layer;
22
23 /**
24 * Construct a new {@link MarkersFromNamedPointsAction}
25 * @param layer The layer this action is for
26 */
27 public MarkersFromNamedPointsAction(final GpxLayer layer) {
28 super(tr("Markers From Named Points"));
29 new ImageProvider("addmarkers").getResource().attachImageIcon(this, true);
30 this.layer = layer;
31 putValue("help", ht("/Action/MarkersFromNamedPoints"));
32 }
33
34 @Override
35 public void actionPerformed(ActionEvent e) {
36 GpxData namedTrackPoints = new GpxData();
37 layer.data.getTrackPoints()
38 .filter(point -> point.attr.containsKey("name") || point.attr.containsKey("desc"))
39 .forEach(namedTrackPoints.waypoints::add);
40 MarkerLayer ml = new MarkerLayer(namedTrackPoints, tr("Named Trackpoints from {0}", layer.getName()), layer.getAssociatedFile(), layer);
41 if (!ml.data.isEmpty()) {
42 MainApplication.getLayerManager().addLayer(ml);
43 }
44 }
45
46}
Note: See TracBrowser for help on using the repository browser.