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

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

fix #15572 - use ImageProvider attach API for all JOSM actions to ensure proper icon size everywhere

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