/* * @(#)StringTransferable.java 1.0 22. August 2007 * * Copyright (c) 2007 Werner Randelshofer, Immensee, Switzerland. * All rights reserved. * * You may not use, copy or modify this file, except in compliance with the * license agreement you entered into with Werner Randelshofer. * For details see accompanying license terms. */ package ch.randelshofer.gui.datatransfer; import java.awt.datatransfer.*; import java.io.IOException; /** * StringTransferable. *

* Note: This transferable should always be used in conjunction with * PlainTextTransferable. *

* Usage: *

 * String text = "bla";
 * CompositeTransfer t = new CompositeTransferable();
 * t.add(new StringTransferable(text));
 * t.add(new PlainTextTransferable(text));
 * 
* * @author Werner Randelshofer * @version 1.0 22. August 2007 Created. */ public class StringTransferable extends AbstractTransferable { private String string; public StringTransferable(String string) { this(getDefaultFlavors(), string); } public StringTransferable(DataFlavor flavor, String string) { this(new DataFlavor[] { flavor }, string); } public StringTransferable(DataFlavor[] flavors, String string) { super(flavors); this.string = string; } public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { if (! isDataFlavorSupported(flavor)) { throw new UnsupportedFlavorException(flavor); } return string; } protected static DataFlavor[] getDefaultFlavors() { try { return new DataFlavor[] { new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType+";class=java.lang.String"), DataFlavor.stringFlavor }; } catch (ClassNotFoundException cle) { InternalError ie = new InternalError( "error initializing StringTransferable"); ie.initCause(cle); throw ie; } } }