source: osm/applications/editors/josm/plugins/reltoolbox/src/relcontext/actions/DownloadParentsAction.java

Last change on this file was 36483, checked in by stoecker, 7 months ago

set eol-style, fix checkstyle issues, add ignores

  • Property svn:eol-style set to native
File size: 2.7 KB
RevLine 
[32395]1// License: GPL. For details, see LICENSE file.
[25679]2package relcontext.actions;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
[29535]5
[25679]6import java.awt.event.ActionEvent;
7import java.util.ArrayList;
8import java.util.Collections;
9import java.util.HashSet;
10import java.util.List;
11import java.util.Set;
[29535]12
[25679]13import javax.swing.AbstractAction;
[29535]14
[25679]15import org.openstreetmap.josm.actions.downloadtasks.DownloadReferrersTask;
16import org.openstreetmap.josm.data.osm.OsmPrimitive;
17import org.openstreetmap.josm.data.osm.Relation;
[33530]18import org.openstreetmap.josm.gui.MainApplication;
[25679]19import org.openstreetmap.josm.gui.dialogs.relation.DownloadRelationMemberTask;
20import org.openstreetmap.josm.gui.dialogs.relation.DownloadRelationTask;
21import org.openstreetmap.josm.tools.ImageProvider;
[29535]22
[25679]23import relcontext.ChosenRelation;
24import relcontext.ChosenRelationListener;
25
26/**
27 * Downloads parent relations for this relation and all parent objects for its members.
[32395]28 *
[25679]29 * @author Zverik
30 */
31public class DownloadParentsAction extends AbstractAction implements ChosenRelationListener {
[36102]32 private final ChosenRelation rel;
[25679]33
[32395]34 public DownloadParentsAction(ChosenRelation rel) {
[25695]35 super(tr("Download referrers"));
[30264]36 putValue(SMALL_ICON, ImageProvider.get("download"));
[26509]37 putValue(SHORT_DESCRIPTION, tr("Download referrers for the chosen relation and its members."));
[25679]38 this.rel = rel;
39 rel.addChosenRelationListener(this);
[33530]40 setEnabled(rel.get() != null && MainApplication.getLayerManager().getEditLayer() != null);
[25679]41 }
42
[32395]43 @Override
44 public void actionPerformed(ActionEvent e) {
[25679]45 Relation relation = rel.get();
[32398]46 if (relation == null) return;
[30737]47 List<OsmPrimitive> objects = new ArrayList<>();
[25679]48 objects.add(relation);
49 objects.addAll(relation.getMemberPrimitives());
[33530]50 MainApplication.worker.submit(
51 new DownloadReferrersTask(MainApplication.getLayerManager().getEditLayer(), objects));
[25679]52 }
53
[32395]54 @Override
55 public void chosenRelationChanged(Relation oldRelation, Relation newRelation) {
[33530]56 setEnabled(newRelation != null && MainApplication.getLayerManager().getEditLayer() != null);
[25679]57 }
58
[32395]59 protected void downloadMembers(Relation rel) {
60 if (!rel.isNew()) {
[33530]61 MainApplication.worker.submit(
62 new DownloadRelationTask(Collections.singletonList(rel), MainApplication.getLayerManager().getEditLayer()));
[25679]63 }
64 }
65
[32395]66 protected void downloadIncomplete(Relation rel) {
[32398]67 if (rel.isNew()) return;
[36102]68 Set<OsmPrimitive> ret = new HashSet<>(rel.getIncompleteMembers());
[32398]69 if (ret.isEmpty()) return;
[33530]70 MainApplication.worker.submit(
71 new DownloadRelationMemberTask(Collections.singletonList(rel), ret, MainApplication.getLayerManager().getEditLayer()));
[25679]72 }
73}
Note: See TracBrowser for help on using the repository browser.