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.data.osm.RelationMember;
008import org.openstreetmap.josm.gui.datatransfer.ClipboardUtils;
009import org.openstreetmap.josm.gui.datatransfer.RelationMemberTransferable;
010import org.openstreetmap.josm.gui.dialogs.relation.IRelationEditor;
011import org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel;
012import org.openstreetmap.josm.gui.layer.OsmDataLayer;
013
014/**
015 * Copy members.
016 * @since 9496
017 */
018public class CopyMembersAction extends AddFromSelectionAction {
019
020    /**
021     * Constructs a new {@code CopyMembersAction}.
022     * @param memberTableModel member table model
023     * @param layer OSM data layer
024     * @param editor relation editor
025     */
026    public CopyMembersAction(MemberTableModel memberTableModel, OsmDataLayer layer, IRelationEditor editor) {
027        super(null, memberTableModel, null, null, null, layer, editor);
028    }
029
030    @Override
031    public void actionPerformed(ActionEvent e) {
032        final Collection<RelationMember> members = memberTableModel.getSelectedMembers();
033
034        if (!members.isEmpty()) {
035            ClipboardUtils.copy(new RelationMemberTransferable(members));
036        }
037    }
038
039    @Override
040    protected void updateEnabledState() {
041        // Do nothing
042    }
043}