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}