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; 007 008import org.openstreetmap.josm.Main; 009import org.openstreetmap.josm.data.osm.Relation; 010import org.openstreetmap.josm.tools.ImageProvider; 011 012/** 013 * Action that delete relations 014 * @since 5799 015 */ 016public class DeleteRelationsAction extends AbstractRelationAction { 017 static class AbortException extends Exception {} 018 019 /** 020 * Constructs a new <code>DeleteRelationsAction</code>. 021 */ 022 public DeleteRelationsAction() { 023 putValue(SHORT_DESCRIPTION, tr("Delete the selected relation")); 024 putValue(NAME, tr("Delete")); 025 putValue(SMALL_ICON, ImageProvider.get("dialogs", "delete")); 026 } 027 028 protected void deleteRelation(Relation toDelete) { 029 if (toDelete == null) 030 return; 031 org.openstreetmap.josm.actions.mapmode.DeleteAction 032 .deleteRelation(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 for (Relation r : relations) { 043 deleteRelation(r); 044 } 045 } 046} 047