1 package net.sf.openrocket.gui.main.componenttree;
3 import java.awt.datatransfer.DataFlavor;
4 import java.awt.datatransfer.Transferable;
5 import java.awt.datatransfer.UnsupportedFlavorException;
6 import java.io.IOException;
8 import net.sf.openrocket.rocketcomponent.RocketComponent;
11 * A transferable that provides a reference to a (JVM-local) RocketComponent object.
13 * @author Sampo Niskanen <sampo.niskanen@iki.fi>
15 public class RocketComponentTransferable implements Transferable {
17 public static final DataFlavor ROCKET_COMPONENT_DATA_FLAVOR = new DataFlavor(
18 DataFlavor.javaJVMLocalObjectMimeType + "; class=" + RocketComponent.class.getCanonicalName(),
19 "OpenRocket component");
22 private final RocketComponent component;
24 public RocketComponentTransferable(RocketComponent component) {
25 this.component = component;
30 public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException {
31 if (!isDataFlavorSupported(flavor)) {
32 throw new UnsupportedFlavorException(flavor);
38 public DataFlavor[] getTransferDataFlavors() {
39 return new DataFlavor[] { ROCKET_COMPONENT_DATA_FLAVOR };
43 public boolean isDataFlavorSupported(DataFlavor flavor) {
44 return flavor.equals(ROCKET_COMPONENT_DATA_FLAVOR);