source: josm/trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/PasteMembersAction.java@ 10604

Last change on this file since 10604 was 10604, checked in by Don-vip, 8 years ago

fix #12478, fix #12565, fix #11114 - Use ​Swing Copy/Paste instead of CopyAction/PasteAction with custom buffer (patch by michael2402, modified) - gsoc-core

File size: 1.6 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.dialogs.relation.actions;
3
4import java.awt.datatransfer.FlavorEvent;
5import java.awt.datatransfer.FlavorListener;
6import java.awt.event.ActionEvent;
7
8import javax.swing.TransferHandler.TransferSupport;
9
10import org.openstreetmap.josm.gui.datatransfer.ClipboardUtils;
11import org.openstreetmap.josm.gui.dialogs.relation.IRelationEditor;
12import org.openstreetmap.josm.gui.dialogs.relation.MemberTable;
13import org.openstreetmap.josm.gui.dialogs.relation.MemberTransferHandler;
14import org.openstreetmap.josm.gui.layer.OsmDataLayer;
15
16/**
17 * Paste members.
18 * @since 9496
19 */
20public class PasteMembersAction extends AddFromSelectionAction implements FlavorListener {
21
22 /**
23 * Constructs a new {@code PasteMembersAction}.
24 * @param memberTable member table
25 * @param layer OSM data layer
26 * @param editor relation editor
27 */
28 public PasteMembersAction(MemberTable memberTable, OsmDataLayer layer, IRelationEditor editor) {
29 super(memberTable, null, null, null, null, layer, editor);
30 updateEnabledState();
31 }
32
33 @Override
34 public void actionPerformed(ActionEvent e) {
35 new MemberTransferHandler().importData(getSupport());
36 }
37
38 private TransferSupport getSupport() {
39 return new TransferSupport(memberTable, ClipboardUtils.getClipboard().getContents(null));
40 }
41
42 @Override
43 protected void updateEnabledState() {
44 setEnabled(new MemberTransferHandler().canImport(getSupport()));
45 }
46
47 @Override
48 public void flavorsChanged(FlavorEvent e) {
49 updateEnabledState();
50 }
51}
Note: See TracBrowser for help on using the repository browser.