org.openbp.jaspira.gui.interaction
Class BasicTransferable

java.lang.Object
  extended by org.openbp.jaspira.gui.interaction.BasicTransferable
All Implemented Interfaces:
java.awt.datatransfer.Transferable
Direct Known Subclasses:
ItemTransferable

public class BasicTransferable
extends java.lang.Object
implements java.awt.datatransfer.Transferable

Basic Transferable that contains data flavors for all implemented interfaces and subclasses of a given transferable. A list of classes and interfaces can be supplied to define those that should NOT be converted into flavors.

Author:
Stephan Moritz

Field Summary
protected  java.lang.Object data
          The transfer data
 
Constructor Summary
BasicTransferable(java.lang.Object data)
          Constructor.
BasicTransferable(java.lang.Object data, java.util.List exclusions)
          Constructor.
 
Method Summary
 java.lang.Object getSafeTransferData(java.awt.datatransfer.DataFlavor flavor)
          Gets the transfer data in the desired format (convenience method that supresses exceptions).
 java.lang.Object getTransferData(java.awt.datatransfer.DataFlavor flavor)
          Returns the object in a way associated with a flavor.
 java.awt.datatransfer.DataFlavor[] getTransferDataFlavors()
          Returns an array of all flavors supported by this Transferable.
 java.lang.Object getUserTransferData(java.awt.datatransfer.DataFlavor flavor)
          Template mehtod for subclasses to add their own flavor support.
 java.util.Collection getUserTransferDataFlavors()
          Template method for subclasses to add their own flavors.
 boolean isDataFlavorSupported(java.awt.datatransfer.DataFlavor flavor)
          Checks if this transferable supports the given flavor.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

data

protected java.lang.Object data
The transfer data

Constructor Detail

BasicTransferable

public BasicTransferable(java.lang.Object data)
Constructor.

Parameters:
data - Transfer data

BasicTransferable

public BasicTransferable(java.lang.Object data,
                         java.util.List exclusions)
Constructor.

Parameters:
data - Transfer data
exclusions - List of classes (Class objects) to exclude of null
Method Detail

getTransferData

public final java.lang.Object getTransferData(java.awt.datatransfer.DataFlavor flavor)
                                       throws java.awt.datatransfer.UnsupportedFlavorException,
                                              java.io.IOException
Returns the object in a way associated with a flavor. Delegates first to a template method (getUserTransferData). If this yields no result returns the data object if flavor is supported. Throws an UnsupportedFlavorException otherwise.

Specified by:
getTransferData in interface java.awt.datatransfer.Transferable
Parameters:
flavor - Flavor to retrieve
Returns:
The resulting transfer data
Throws:
java.awt.datatransfer.UnsupportedFlavorException - If the flavor is not supported
java.io.IOException - On i/o error

getUserTransferData

public java.lang.Object getUserTransferData(java.awt.datatransfer.DataFlavor flavor)
                                     throws java.io.IOException
Template mehtod for subclasses to add their own flavor support.

Parameters:
flavor - Flavor to retrieve
Returns:
The object to return or null if the template method doesn't support this flavor
Throws:
java.io.IOException

getTransferDataFlavors

public final java.awt.datatransfer.DataFlavor[] getTransferDataFlavors()
Returns an array of all flavors supported by this Transferable.

Specified by:
getTransferDataFlavors in interface java.awt.datatransfer.Transferable

getUserTransferDataFlavors

public java.util.Collection getUserTransferDataFlavors()
Template method for subclasses to add their own flavors. This should usually return a List (or other Collection with a fixed order), order from the most precise to the most general flavor.

Returns:
Collection

isDataFlavorSupported

public final boolean isDataFlavorSupported(java.awt.datatransfer.DataFlavor flavor)
Checks if this transferable supports the given flavor.

Specified by:
isDataFlavorSupported in interface java.awt.datatransfer.Transferable
Returns:
true The flavor is supported by the transfer data of this object.
false Unsupported flavor

getSafeTransferData

public java.lang.Object getSafeTransferData(java.awt.datatransfer.DataFlavor flavor)
Gets the transfer data in the desired format (convenience method that supresses exceptions). You should call this method only if have previously checked if the flavor is supported by calling isDataFlavorSupported(java.awt.datatransfer.DataFlavor).

Parameters:
flavor - Flavor to get
Returns:
The desired object or null if the flavor is not supported or an i/o error has occurred. In the latter case, the method prints a stack trace to stderr.


Copyright © 2011. All Rights Reserved.