// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.gui.dialogs.relation.actions; import static org.openstreetmap.josm.tools.I18n.tr; import java.awt.event.ActionEvent; import org.openstreetmap.josm.gui.dialogs.relation.MemberTable; import org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel; import org.openstreetmap.josm.gui.layer.OsmDataLayer; import org.openstreetmap.josm.tools.ImageProvider; /** * Selects primitives in the layer this editor belongs to. The selected primitives are * equal to the set of primitives the currently selected relation members refer to. * @since 9496 */ public class SelectPrimitivesForSelectedMembersAction extends AbstractRelationEditorAction { /** * Select objects for selected relation members. * @param memberTable member table * @param memberTableModel member table model * @param layer layer */ public SelectPrimitivesForSelectedMembersAction(MemberTable memberTable, MemberTableModel memberTableModel, OsmDataLayer layer) { super(memberTable, memberTableModel, null, layer, null); putValue(SHORT_DESCRIPTION, tr("Select objects for selected relation members")); putValue(SMALL_ICON, ImageProvider.get("dialogs/relation", "selectprimitives")); updateEnabledState(); } @Override protected void updateEnabledState() { setEnabled(memberTable.getSelectedRowCount() > 0); } @Override public void actionPerformed(ActionEvent e) { layer.data.setSelected(memberTableModel.getSelectedChildPrimitives()); } }