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 org.openstreetmap.josm.gui.MainApplication;
009import org.openstreetmap.josm.gui.preferences.display.DrawingPreference;
010import org.openstreetmap.josm.tools.ImageProvider;
011
012/**
013 * This class toggles whether to draw boundaries of downloaded data.
014 *
015 * @since 14648
016 */
017public class DrawBoundariesOfDownloadedDataAction extends PreferenceToggleAction {
018
019    /**
020     * Constructs a new {@link DrawBoundariesOfDownloadedDataAction}.
021     */
022    public DrawBoundariesOfDownloadedDataAction() {
023        super(tr("Draw boundaries of downloaded data"),
024                new ImageProvider("hatched.svg"),
025                tr("Enable/disable hatched background rendering of areas outside of the downloaded areas."),
026                DrawingPreference.SOURCE_BOUNDS_PROP
027        );
028    }
029
030    @Override
031    protected boolean listenToSelectionChange() {
032        return false;
033    }
034
035    @Override
036    protected void updateEnabledState() {
037        setEnabled(MainApplication.getLayerManager().getEditLayer() != null);
038    }
039
040    @Override
041    public void actionPerformed(ActionEvent e) {
042        super.actionPerformed(e);
043        if (MainApplication.isDisplayingMapView()) {
044            MainApplication.getMap().mapView.repaint();
045        }
046    }
047
048}