001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.gui.dialogs.relation.actions;
003
004import static org.openstreetmap.josm.tools.I18n.tr;
005
006import java.awt.event.ActionEvent;
007
008import org.openstreetmap.josm.data.osm.Relation;
009import org.openstreetmap.josm.gui.dialogs.relation.IRelationEditor;
010import org.openstreetmap.josm.gui.layer.OsmDataLayer;
011import org.openstreetmap.josm.tools.ImageProvider;
012
013/**
014 * Select the currently edited relation.
015 * @since 12933
016 */
017public class SelectAction extends AbstractRelationEditorAction {
018
019    /**
020     * Constructs a new {@code SelectAction}.
021     * @param layer OSM data layer
022     * @param editor relation editor
023     */
024    public SelectAction(OsmDataLayer layer, IRelationEditor editor) {
025        super(null, null, null, layer, editor);
026        putValue(NAME, tr("Select"));
027        putValue(SHORT_DESCRIPTION, tr("Select the currently edited relation"));
028        new ImageProvider("dialogs", "select").getResource().attachImageIcon(this, true);
029        updateEnabledState();
030    }
031
032    @Override
033    public void actionPerformed(ActionEvent e) {
034        Relation toSelect = editor.getRelation();
035        if (toSelect == null)
036            return;
037        layer.data.setSelected(toSelect);
038    }
039
040    @Override
041    protected void updateEnabledState() {
042        setEnabled(editor.getRelationSnapshot() != null);
043    }
044}