source: josm/trunk/src/org/openstreetmap/josm/actions/relation/DownloadSelectedIncompleteMembersAction.java@ 5799

Last change on this file since 5799 was 5799, checked in by akks, 11 years ago

Membership tabled in properties toggle dialog supports multiselect (and multiple membership deletion)
Property toggle dialog refactoring - methods splitting and reordering
see #7846: more RelationListDialog refactoring, all other relation-related actions separated from dialogs, @Override, JavaDocs

File size: 2.0 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.actions.relation;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import java.awt.event.ActionEvent;
7import java.util.Collection;
8import java.util.HashSet;
9import java.util.Set;
10
11import org.openstreetmap.josm.Main;
12import org.openstreetmap.josm.data.osm.OsmPrimitive;
13import org.openstreetmap.josm.data.osm.Relation;
14import org.openstreetmap.josm.gui.dialogs.relation.DownloadRelationMemberTask;
15import org.openstreetmap.josm.tools.ImageProvider;
16
17/**
18 * Action for downloading incomplete members of selected relations
19 * @since 5793
20 */
21public class DownloadSelectedIncompleteMembersAction extends AbstractRelationAction {
22
23 /**
24 * Constructs a new <code>DownloadSelectedIncompleteMembersAction</code>.
25 */
26 public DownloadSelectedIncompleteMembersAction() {
27 putValue(SHORT_DESCRIPTION, tr("Download incomplete members of selected relations"));
28 putValue(SMALL_ICON, ImageProvider.get("dialogs/relation", "downloadincompleteselected"));
29 putValue(NAME, tr("Download incomplete members"));
30 }
31
32 /**
33 * Returns the set of incomplete members of the given relations.
34 * @param rels The relations to inspect.
35 * @return The set of incomplete members of the given relations.
36 */
37 public Set<OsmPrimitive> buildSetOfIncompleteMembers(Collection<Relation> rels) {
38 Set<OsmPrimitive> ret = new HashSet<OsmPrimitive>();
39 for (Relation r : rels) {
40 ret.addAll(r.getIncompleteMembers());
41 }
42 return ret;
43 }
44
45 @Override
46 public void actionPerformed(ActionEvent e) {
47 if (!isEnabled() || relations.isEmpty() || Main.map==null || Main.map.mapView==null) return;
48 Main.worker.submit(new DownloadRelationMemberTask(
49 relations,
50 buildSetOfIncompleteMembers(relations),
51 Main.map.mapView.getEditLayer()));
52 }
53}
Note: See TracBrowser for help on using the repository browser.