001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.actions.relation; 003 004import static org.openstreetmap.josm.tools.I18n.tr; 005 006import java.awt.event.ActionEvent; 007import java.util.Collection; 008 009import org.openstreetmap.josm.Main; 010import org.openstreetmap.josm.actions.mapmode.DeleteAction; 011import org.openstreetmap.josm.data.osm.Relation; 012import org.openstreetmap.josm.tools.ImageProvider; 013 014/** 015 * Action that delete relations 016 * @since 5799 017 */ 018public class DeleteRelationsAction extends AbstractRelationAction { 019 020 /** 021 * Constructs a new <code>DeleteRelationsAction</code>. 022 */ 023 public DeleteRelationsAction() { 024 putValue(SHORT_DESCRIPTION, tr("Delete the selected relation")); 025 putValue(NAME, tr("Delete")); 026 putValue(SMALL_ICON, ImageProvider.get("dialogs", "delete")); 027 } 028 029 protected void deleteRelation(Collection<Relation> toDelete) { 030 if (toDelete == null) 031 return; 032 DeleteAction.deleteRelations(Main.main.getEditLayer(), toDelete); 033 // clear selection after deletion 034 if (Main.map.relationListDialog != null) 035 Main.map.relationListDialog.selectRelations(null); 036 } 037 038 @Override 039 public void actionPerformed(ActionEvent e) { 040 if (!isEnabled() || !Main.main.hasEditLayer()) 041 return; 042 deleteRelation(relations); 043 } 044}