source: josm/trunk/src/org/openstreetmap/josm/actions/relation/DownloadMembersAction.java@ 12464

Last change on this file since 12464 was 10657, checked in by Don-vip, 8 years ago

see #11390, see #12890 - use Java 8 Predicates

  • 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.relation;
3
4import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
5import static org.openstreetmap.josm.tools.I18n.tr;
6
7import java.awt.event.ActionEvent;
8import java.util.Collection;
9
10import org.openstreetmap.josm.Main;
11import org.openstreetmap.josm.data.osm.OsmPrimitive;
12import org.openstreetmap.josm.gui.dialogs.relation.DownloadRelationTask;
13import org.openstreetmap.josm.io.OnlineResource;
14import org.openstreetmap.josm.tools.ImageProvider;
15import org.openstreetmap.josm.tools.SubclassFilteredCollection;
16
17/**
18 * The action for downloading members of relations
19 * @since 5793
20 */
21public class DownloadMembersAction extends AbstractRelationAction {
22
23 /**
24 * Constructs a new <code>DownloadMembersAction</code>.
25 */
26 public DownloadMembersAction() {
27 putValue(SHORT_DESCRIPTION, tr("Download all members of the selected relations"));
28 putValue(NAME, tr("Download members"));
29 putValue(SMALL_ICON, ImageProvider.get("dialogs", "downloadincomplete"));
30 putValue("help", ht("/Dialog/RelationList#DownloadMembers"));
31 }
32
33 @Override
34 public void actionPerformed(ActionEvent e) {
35 if (!isEnabled() || relations.isEmpty() || !Main.isDisplayingMapView()) return;
36 Main.worker.submit(new DownloadRelationTask(relations, Main.getLayerManager().getEditLayer()));
37 }
38
39 @Override
40 public void setPrimitives(Collection<? extends OsmPrimitive> primitives) {
41 // selected non-new relations
42 this.relations = SubclassFilteredCollection.filter(getRelations(primitives), r -> !r.isNew());
43 updateEnabledState();
44 }
45
46 @Override
47 protected void updateEnabledState() {
48 setEnabled(!relations.isEmpty() && !Main.isOffline(OnlineResource.OSM_API));
49 }
50}
Note: See TracBrowser for help on using the repository browser.