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.gui.layer.OsmDataLayer; 013import org.openstreetmap.josm.tools.ImageProvider; 014 015/** 016 * Action that delete relations 017 * @since 5799 018 */ 019public class DeleteRelationsAction extends AbstractRelationAction { 020 021 /** 022 * Constructs a new <code>DeleteRelationsAction</code>. 023 */ 024 public DeleteRelationsAction() { 025 putValue(SHORT_DESCRIPTION, tr("Delete the selected relation")); 026 putValue(NAME, tr("Delete")); 027 new ImageProvider("dialogs", "delete").getResource().attachImageIcon(this, true); 028 } 029 030 protected void deleteRelation(Collection<Relation> toDelete) { 031 OsmDataLayer layer = Main.getLayerManager().getEditLayer(); 032 if (toDelete == null || layer == null) 033 return; 034 035 DeleteAction.deleteRelations(layer, toDelete); 036 // clear selection after deletion 037 if (Main.map.relationListDialog != null) 038 Main.map.relationListDialog.selectRelations(null); 039 } 040 041 @Override 042 public void actionPerformed(ActionEvent e) { 043 if (!isEnabled()) 044 return; 045 deleteRelation(relations); 046 } 047}