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

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

fix #13378 - IllegalStateException

File size: 1.8 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.Main;
11import org.openstreetmap.josm.gui.datatransfer.ClipboardUtils;
12import org.openstreetmap.josm.gui.dialogs.relation.IRelationEditor;
13import org.openstreetmap.josm.gui.dialogs.relation.MemberTable;
14import org.openstreetmap.josm.gui.dialogs.relation.MemberTransferHandler;
15import org.openstreetmap.josm.gui.layer.OsmDataLayer;
16
17/**
18 * Paste members.
19 * @since 9496
20 */
21public class PasteMembersAction extends AddFromSelectionAction implements FlavorListener {
22
23 /**
24 * Constructs a new {@code PasteMembersAction}.
25 * @param memberTable member table
26 * @param layer OSM data layer
27 * @param editor relation editor
28 */
29 public PasteMembersAction(MemberTable memberTable, OsmDataLayer layer, IRelationEditor editor) {
30 super(memberTable, null, null, null, null, layer, editor);
31 updateEnabledState();
32 }
33
34 @Override
35 public void actionPerformed(ActionEvent e) {
36 try {
37 new MemberTransferHandler().importData(getSupport());
38 } catch (IllegalStateException ex) {
39 Main.error(ex);
40 }
41 }
42
43 private TransferSupport getSupport() {
44 return new TransferSupport(memberTable, ClipboardUtils.getClipboard().getContents(null));
45 }
46
47 @Override
48 protected void updateEnabledState() {
49 try {
50 setEnabled(new MemberTransferHandler().canImport(getSupport()));
51 } catch (IllegalStateException ex) {
52 Main.error(ex);
53 }
54 }
55
56 @Override
57 public void flavorsChanged(FlavorEvent e) {
58 updateEnabledState();
59 }
60}
Note: See TracBrowser for help on using the repository browser.