001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.actions;
003
004import static org.openstreetmap.josm.tools.I18n.tr;
005
006import java.awt.event.ActionEvent;
007
008import javax.swing.AbstractAction;
009
010import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
011import org.openstreetmap.josm.gui.layer.OsmDataLayer;
012import org.openstreetmap.josm.tools.ImageProvider;
013
014/**
015 * An action enabling/disabling the {@linkplain OsmDataLayer#setUploadDiscouraged(boolean) discouraged upload flag}
016 * of the layer specified in the constructor.
017 */
018public class ToggleUploadDiscouragedLayerAction extends AbstractAction {
019
020    private final transient OsmDataLayer layer;
021
022    /**
023     * Constructs a new {@code ToggleUploadDiscouragedLayerAction}.
024     * @param layer the layer for which to toggle the {@linkplain OsmDataLayer#setUploadDiscouraged(boolean) discouraged upload flag}
025     */
026    public ToggleUploadDiscouragedLayerAction(OsmDataLayer layer) {
027        super(tr("Encourage/discourage upload"), ImageProvider.get("no_upload"));
028        this.layer = layer;
029    }
030
031    @Override
032    public void actionPerformed(ActionEvent e) {
033        layer.setUploadDiscouraged(!layer.isUploadDiscouraged());
034        LayerListDialog.getInstance().repaint();
035    }
036}