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}