001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.gui.dialogs.relation.actions; 003 004import java.awt.event.ActionEvent; 005import java.util.Collection; 006 007import org.openstreetmap.josm.actions.CopyAction; 008import org.openstreetmap.josm.data.osm.OsmPrimitive; 009import org.openstreetmap.josm.gui.dialogs.relation.IRelationEditor; 010import org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel; 011import org.openstreetmap.josm.gui.layer.OsmDataLayer; 012 013/** 014 * Copy members. 015 * @since 9496 016 */ 017public class CopyMembersAction extends AddFromSelectionAction { 018 019 /** 020 * Constructs a new {@code CopyMembersAction}. 021 * @param memberTableModel member table model 022 * @param layer OSM data layer 023 * @param editor relation editor 024 */ 025 public CopyMembersAction(MemberTableModel memberTableModel, OsmDataLayer layer, IRelationEditor editor) { 026 super(null, memberTableModel, null, null, null, layer, editor); 027 } 028 029 @Override 030 public void actionPerformed(ActionEvent e) { 031 final Collection<OsmPrimitive> primitives = memberTableModel.getSelectedChildPrimitives(); 032 if (!primitives.isEmpty()) { 033 CopyAction.copy(layer, primitives); 034 } 035 } 036 037 @Override 038 protected void updateEnabledState() { 039 // Do nothing 040 } 041}