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

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

See #14794: Document the layer.gpx package

  • Property svn:eol-style set to native
File size: 1.6 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.Main;
12import org.openstreetmap.josm.data.gpx.GpxData;
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"), ImageProvider.get("addmarkers"));
29 this.layer = layer;
30 putValue("help", ht("/Action/MarkersFromNamedPoints"));
31 }
32
33 @Override
34 public void actionPerformed(ActionEvent e) {
35 GpxData namedTrackPoints = new GpxData();
36 layer.data.getTrackPoints()
37 .filter(point -> point.attr.containsKey("name") || point.attr.containsKey("desc"))
38 .forEach(namedTrackPoints.waypoints::add);
39 MarkerLayer ml = new MarkerLayer(namedTrackPoints, tr("Named Trackpoints from {0}", layer.getName()), layer.getAssociatedFile(), layer);
40 if (!ml.data.isEmpty()) {
41 Main.getLayerManager().addLayer(ml);
42 }
43 }
44
45}
Note: See TracBrowser for help on using the repository browser.