001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.actions.relation; 003 004import java.awt.event.ActionEvent; 005 006import org.openstreetmap.josm.Main; 007import org.openstreetmap.josm.data.osm.Relation; 008import org.openstreetmap.josm.tools.ImageProvider; 009 010import static org.openstreetmap.josm.tools.I18n.tr; 011 012 013/** 014 * Action that delete relations 015 * @since 5799 016 */ 017public class DeleteRelationsAction extends AbstractRelationAction { 018 class AbortException extends Exception {} 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(Relation toDelete) { 030 if (toDelete == null) 031 return; 032 org.openstreetmap.josm.actions.mapmode.DeleteAction 033 .deleteRelation( Main.main.getEditLayer(), toDelete ); 034 // clear selection after deletion 035 if (Main.map.relationListDialog!=null) 036 Main.map.relationListDialog.selectRelations(null); 037 } 038 039 @Override 040 public void actionPerformed(ActionEvent e) { 041 if (!isEnabled() || !Main.main.hasEditLayer()) 042 return; 043 for (Relation r : relations) { 044 deleteRelation(r); 045 } 046 } 047} 048