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 015/** 016 * Action that deletes selected objects. 017 * @since 770 018 */ 019public final class DeleteAction extends JosmAction { 020 021 /** 022 * Constructs a new {@code DeleteAction}. 023 */ 024 public DeleteAction() { 025 super(tr("Delete"), "dialogs/delete", tr("Delete selected objects."), 026 Shortcut.registerShortcut("system:delete", tr("Edit: {0}", tr("Delete")), KeyEvent.VK_DELETE, Shortcut.DIRECT), true); 027 putValue("help", ht("/Action/Delete")); 028 } 029 030 @Override 031 public void actionPerformed(ActionEvent e) { 032 if (!isEnabled() || !Main.map.mapView.isActiveLayerVisible()) 033 return; 034 org.openstreetmap.josm.actions.mapmode.DeleteAction.doActionPerformed(e); 035 } 036 037 @Override 038 protected void updateEnabledState() { 039 updateEnabledStateOnCurrentSelection(); 040 } 041 042 @Override 043 protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) { 044 setEnabled(selection != null && !selection.isEmpty()); 045 } 046}