source: josm/trunk/src/org/openstreetmap/josm/gui/datatransfer/SingleLayerTransferable.java@ 10605

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

see #12478 - Use ​Swing Copy/Paste instead of CopyAction/PasteAction with custom buffer (layer part: patch by michael2402, modified) - gsoc-core

File size: 1.9 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.datatransfer;
3
4import java.awt.datatransfer.DataFlavor;
5import java.awt.datatransfer.Transferable;
6import java.awt.datatransfer.UnsupportedFlavorException;
7import java.io.IOException;
8import java.util.List;
9
10import org.openstreetmap.josm.gui.datatransfer.data.LayerTransferData;
11import org.openstreetmap.josm.gui.datatransfer.data.OsmLayerTransferData;
12import org.openstreetmap.josm.gui.layer.Layer;
13import org.openstreetmap.josm.gui.layer.LayerManager;
14import org.openstreetmap.josm.gui.layer.OsmDataLayer;
15
16/**
17 * This class handles the transfer of a layer inside this JOSM instance.
18 * @author Michael Zangl
19 * @since 10605
20 */
21public class SingleLayerTransferable implements Transferable {
22 private final LayerTransferData data;
23
24 /**
25 * Create a new {@link SingleLayerTransferable}
26 * @param manager The manager the layer belongs to
27 * @param layer The layer that is transfered.
28 */
29 public SingleLayerTransferable(LayerManager manager, Layer layer) {
30 if (layer instanceof OsmDataLayer) {
31 this.data = new OsmLayerTransferData(manager, (OsmDataLayer) layer);
32 } else {
33 this.data = new LayerTransferData(manager, layer);
34 }
35 }
36
37 @Override
38 public DataFlavor[] getTransferDataFlavors() {
39 List<DataFlavor> flavors = data.getSupportedFlavors();
40 return flavors.toArray(new DataFlavor[flavors.size()]);
41 }
42
43 @Override
44 public boolean isDataFlavorSupported(DataFlavor flavor) {
45 return data.getSupportedFlavors().contains(flavor);
46 }
47
48 @Override
49 public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException {
50 if (isDataFlavorSupported(flavor)) {
51 return data;
52 } else {
53 throw new UnsupportedFlavorException(flavor);
54 }
55 }
56}
Note: See TracBrowser for help on using the repository browser.