/*
* @(#)StringTransferable.java 1.0 98/09/21
*
* Copyright 1998 by Rockhopper Technologies, Inc.,
* 75 Trueman Ave., Haddonfield, New Jersey, 08033-2529, U.S.A.
* All rights reserved.
*
* This software is the confidential and proprietary information
* of Rockhopper Technologies, Inc. ("Confidential Information"). You
* shall not disclose such Confidential Information and shall use
* it only in accordance with the terms of the license agreement
* you entered into with RTI.
*/
package net.tinyos.sim.plugins;
import javax.swing.*;
import java.awt.*;
import java.awt.datatransfer.*;
import java.io.*;
import java.util.*;
import java.util.List;
/**
* File: StringTransferable.java
* StringTransferable
*
* @author Gene De Lisa
* @version 1.0 Mon Oct 26, 1998
* @see java.lang.Object
*/
public class StringTransferable implements Transferable, ClipboardOwner {
// We don't really need these class variables since the array will contain them.
// In a future article we will actually make our own flavors here.
public static final DataFlavor plainTextFlavor = DataFlavor.plainTextFlavor;
public static final DataFlavor localStringFlavor = DataFlavor.stringFlavor;
public static final DataFlavor[] flavors = {
StringTransferable.plainTextFlavor,
StringTransferable.localStringFlavor
};
private static final List flavorList = Arrays.asList( flavors );
private String string;
/**
* Constructor.
* simply initializes instance variable
*/
public StringTransferable(String string) {
this.string = string;
}
private void dumpFlavor(DataFlavor flavor) {
System.out.println( "getMimeType " +
flavor.getMimeType() );
System.out.println( "getHumanPresentableName " +
flavor.getHumanPresentableName() );
System.out.println( "getRepresentationClass " +
flavor.getRepresentationClass().getName() );
System.out.println( "isMimeTypeSerializedObject " +
flavor.isMimeTypeSerializedObject() );
System.out.println( "isRepresentationClassInputStream " +
flavor.isRepresentationClassInputStream() );
System.out.println( "isRepresentationClassSerializable " +
flavor.isRepresentationClassSerializable() );
System.out.println( "isRepresentationClassRemote " +
flavor.isRepresentationClassRemote() );
System.out.println( "isFlavorSerializedObjectType " +
flavor.isFlavorSerializedObjectType() );
System.out.println( "isFlavorRemoteObjectType " +
flavor.isFlavorRemoteObjectType() );
System.out.println( "isFlavorJavaFileListType " +
flavor.isFlavorJavaFileListType() );
}
public synchronized DataFlavor[] getTransferDataFlavors() {
// return (DataFlavor[]) flavorList.toArray();
return flavors;
}
public boolean isDataFlavorSupported( DataFlavor flavor ) {
return ( flavorList.contains( flavor ) );
}
public synchronized Object getTransferData(DataFlavor flavor)
throws UnsupportedFlavorException, IOException {
System.err.println( "getTransferData(): ");
dumpFlavor(flavor);
if (flavor.equals(StringTransferable.plainTextFlavor)) {
return new ByteArrayInputStream(this.string.getBytes("Unicode"));
} else if (StringTransferable.localStringFlavor.equals(flavor)) {
return this.string;
} else {
throw new UnsupportedFlavorException (flavor);
}
}
public String toString() {
return "StringTransferable";
}
public void lostOwnership(Clipboard clipboard, Transferable contents) {
System.out.println ("StringTransferable lost ownership of " +
clipboard.getName());
System.out.println ("data: " + contents);
}
}