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}