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}