// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.actions.relation; import static org.openstreetmap.josm.tools.I18n.tr; import java.awt.event.ActionEvent; import org.openstreetmap.josm.Main; import org.openstreetmap.josm.gui.layer.OsmDataLayer; import org.openstreetmap.josm.tools.ImageProvider; /** * Sets the current selection to specified list of relations * @since 5793 */ public class SelectRelationAction extends AbstractRelationAction { private final boolean add; /** * Constructs a new <code>SelectRelationAction</code>. * @param add if <code>true</code>, the relation will be added to current selection. * If <code>false</code>, the relation will replace the current selection. */ public SelectRelationAction(boolean add) { putValue(SHORT_DESCRIPTION, add ? tr("Add the selected relations to the current selection") : tr("Set the current selection to the list of selected relations")); new ImageProvider("dialogs", "select").getResource().attachImageIcon(this, true); putValue(NAME, add ? tr("Select relation (add)") : tr("Select relation")); this.add = add; } @Override public void actionPerformed(ActionEvent e) { if (!isEnabled() || relations.isEmpty()) return; OsmDataLayer editLayer = Main.getLayerManager().getEditLayer(); if (editLayer == null || editLayer.data == null) return; if (add) { editLayer.data.addSelected(relations); } else { editLayer.data.setSelected(relations); } } }