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

Last change on this file since 13453 was 13453, checked in by Don-vip, 6 years ago

fix #8039, fix #10456: final fixes for the read-only/locked layers:

  • rename "read-only" to "locked" (in XML and Java classes/interfaces)
  • add a new download policy (true/never) to allow private layers forbidding only to download data, but allowing everything else

This leads to:

  • normal layers: download allowed, modifications allowed, upload allowed
  • private layers: download allowed or not (download=true/never), modifications allowed, upload allowed or not (upload=true/discouraged/never)
  • locked layers: nothing allowed, the data cannot be modified in any way
  • Property svn:eol-style set to native
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.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.MainApplication;
13import org.openstreetmap.josm.gui.dialogs.relation.DownloadRelationTask;
14import org.openstreetmap.josm.io.OnlineResource;
15import org.openstreetmap.josm.tools.ImageProvider;
16import org.openstreetmap.josm.tools.SubclassFilteredCollection;
17
18/**
19 * The action for downloading members of relations
20 * @since 5793
21 */
22public class DownloadMembersAction extends AbstractRelationAction {
23
24 /**
25 * Constructs a new <code>DownloadMembersAction</code>.
26 */
27 public DownloadMembersAction() {
28 putValue(SHORT_DESCRIPTION, tr("Download all members of the selected relations"));
29 putValue(NAME, tr("Download members"));
30 new ImageProvider("dialogs", "downloadincomplete").getResource().attachImageIcon(this, true);
31 putValue("help", ht("/Dialog/RelationList#DownloadMembers"));
32 }
33
34 @Override
35 public void actionPerformed(ActionEvent e) {
36 if (!isEnabled() || relations.isEmpty() || !MainApplication.isDisplayingMapView()) return;
37 MainApplication.worker.submit(new DownloadRelationTask(relations, MainApplication.getLayerManager().getEditLayer()));
38 }
39
40 @Override
41 public void setPrimitives(Collection<? extends OsmPrimitive> primitives) {
42 // selected non-new relations
43 this.relations = SubclassFilteredCollection.filter(getRelations(primitives), r -> !r.isNew());
44 updateEnabledState();
45 }
46
47 @Override
48 protected void updateEnabledState() {
49 setEnabled(!relations.isEmpty() && !Main.isOffline(OnlineResource.OSM_API)
50 && !relations.iterator().next().getDataSet().isLocked());
51 }
52}
Note: See TracBrowser for help on using the repository browser.