001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.actions;
003
004import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
005import static org.openstreetmap.josm.tools.I18n.tr;
006
007import java.awt.event.ActionEvent;
008import java.awt.event.KeyEvent;
009import java.util.Collection;
010
011import org.openstreetmap.josm.Main;
012import org.openstreetmap.josm.data.osm.OsmPrimitive;
013import org.openstreetmap.josm.tools.Shortcut;
014
015public final class DeleteAction extends JosmAction {
016
017    public DeleteAction() {
018        super(tr("Delete"), "dialogs/delete", tr("Delete selected objects."),
019                Shortcut.registerShortcut("system:delete", tr("Edit: {0}", tr("Delete")), KeyEvent.VK_DELETE, Shortcut.DIRECT), true);
020        putValue("help", ht("/Action/Delete"));
021    }
022
023    @Override
024    public void actionPerformed(ActionEvent e) {
025        if (!isEnabled())
026            return;
027        if(!Main.map.mapView.isActiveLayerVisible())
028            return;
029        org.openstreetmap.josm.actions.mapmode.DeleteAction.doActionPerformed(e);
030    }
031
032    @Override
033    protected void updateEnabledState() {
034        if (getCurrentDataSet() == null) {
035            setEnabled(false);
036        } else {
037            updateEnabledState(getCurrentDataSet().getSelected());
038        }
039    }
040
041    @Override
042    protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
043        setEnabled(selection != null && !selection.isEmpty());
044    }
045}