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 }