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

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

See #14120: Don't make gpx tracks depend on the isChanged method, use a listener based approach instead.

  • Property svn:eol-style set to native
File size: 1.4 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
17public class MarkersFromNamedPointsAction extends AbstractAction {
18 private final transient GpxLayer layer;
19
20 public MarkersFromNamedPointsAction(final GpxLayer layer) {
21 super(tr("Markers From Named Points"), ImageProvider.get("addmarkers"));
22 this.layer = layer;
23 putValue("help", ht("/Action/MarkersFromNamedPoints"));
24 }
25
26 @Override
27 public void actionPerformed(ActionEvent e) {
28 GpxData namedTrackPoints = new GpxData();
29 layer.data.getTrackPoints()
30 .filter(point -> point.attr.containsKey("name") || point.attr.containsKey("desc"))
31 .forEach(namedTrackPoints.waypoints::add);
32 MarkerLayer ml = new MarkerLayer(namedTrackPoints, tr("Named Trackpoints from {0}", layer.getName()), layer.getAssociatedFile(), layer);
33 if (!ml.data.isEmpty()) {
34 Main.getLayerManager().addLayer(ml);
35 }
36 }
37
38}
Note: See TracBrowser for help on using the repository browser.