source: josm/trunk/src/org/openstreetmap/josm/actions/ToggleUploadDiscouragedLayerAction.java@ 12284

Last change on this file since 12284 was 11709, checked in by bastiK, 7 years ago

fixed #12731 - Add an option to completely prevent upload of a layer : e.g. "never" to upload=true/false

to set this option, add XML attribute upload='never' to .osm file

  • 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;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import java.awt.Component;
7import java.awt.event.ActionEvent;
8import java.util.List;
9
10import javax.swing.AbstractAction;
11import javax.swing.JCheckBoxMenuItem;
12
13import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
14import org.openstreetmap.josm.gui.layer.Layer;
15import org.openstreetmap.josm.gui.layer.Layer.LayerAction;
16import org.openstreetmap.josm.gui.layer.OsmDataLayer;
17import org.openstreetmap.josm.tools.ImageProvider;
18
19/**
20 * An action enabling/disabling the {@linkplain OsmDataLayer#setUploadDiscouraged(boolean) discouraged upload flag}
21 * of the layer specified in the constructor.
22 */
23public class ToggleUploadDiscouragedLayerAction extends AbstractAction implements LayerAction {
24
25 private final transient OsmDataLayer layer;
26
27 /**
28 * Constructs a new {@code ToggleUploadDiscouragedLayerAction}.
29 * @param layer the layer for which to toggle the {@linkplain OsmDataLayer#setUploadDiscouraged(boolean) discouraged upload flag}
30 */
31 public ToggleUploadDiscouragedLayerAction(OsmDataLayer layer) {
32 super(tr("Discourage upload"), ImageProvider.get("no_upload"));
33 this.layer = layer;
34 setEnabled(layer.isUploadable());
35 }
36
37 @Override
38 public void actionPerformed(ActionEvent e) {
39 layer.setUploadDiscouraged(!layer.isUploadDiscouraged());
40 LayerListDialog.getInstance().repaint();
41 }
42
43 @Override
44 public Component createMenuComponent() {
45 JCheckBoxMenuItem item = new JCheckBoxMenuItem(this);
46 item.setSelected(layer.isUploadDiscouraged() || !layer.isUploadable());
47 return item;
48 }
49
50 @Override
51 public boolean supportLayers(List<Layer> layers) {
52 return layers.size() == 1 && layers.get(0) instanceof OsmDataLayer;
53 }
54}
Note: See TracBrowser for help on using the repository browser.