001    // License: GPL. Copyright 2007 by Immanuel Scholz and others
002    package org.openstreetmap.josm.actions;
003    
004    import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
005    import static org.openstreetmap.josm.tools.I18n.tr;
006    
007    import java.awt.event.ActionEvent;
008    import java.awt.event.KeyEvent;
009    import java.util.Collection;
010    
011    import org.openstreetmap.josm.Main;
012    import org.openstreetmap.josm.data.osm.OsmPrimitive;
013    import org.openstreetmap.josm.tools.Shortcut;
014    
015    public 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        public void actionPerformed(ActionEvent e) {
024            if (!isEnabled())
025                return;
026            if(!Main.map.mapView.isActiveLayerVisible())
027                return;
028            org.openstreetmap.josm.actions.mapmode.DeleteAction.doActionPerformed(e);
029        }
030    
031        @Override
032        protected void updateEnabledState() {
033            if (getCurrentDataSet() == null) {
034                setEnabled(false);
035            } else {
036                updateEnabledState(getCurrentDataSet().getSelected());
037            }
038        }
039    
040        @Override
041        protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
042            setEnabled(selection != null && !selection.isEmpty());
043        }
044    }