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}