Package it.ipzs.cieid.Firma
Class FileDrop.TransferableObject
- java.lang.Object
-
- it.ipzs.cieid.Firma.FileDrop.TransferableObject
-
- All Implemented Interfaces:
java.awt.datatransfer.Transferable
- Enclosing class:
- FileDrop
public static class FileDrop.TransferableObject extends java.lang.Object implements java.awt.datatransfer.Transferable
At last an easy way to encapsulate your custom objects for dragging and dropping in your Java programs! When you need to create aTransferable
object, use this class to wrap your object. For example:
Or if you need to know when the data was actually dropped, like when you're moving data out of a list, say, you can use the... MyCoolClass myObj = new MyCoolClass(); Transferable xfer = new TransferableObject( myObj ); ...
FileDrop.TransferableObject.Fetcher
inner class to return your object Just in Time. For example:
The... final MyCoolClass myObj = new MyCoolClass(); TransferableObject.Fetcher fetcher = new TransferableObject.Fetcher() { public Object getObject(){ return myObj; } }; // end fetcher Transferable xfer = new TransferableObject( fetcher ); ...
DataFlavor
associated withFileDrop.TransferableObject
has the representation class net.iharder.dnd.TransferableObject.class and MIME type application/x-net.iharder.dnd.TransferableObject. This data flavor is accessible via the staticDATA_FLAVOR
property.I'm releasing this code into the Public Domain. Enjoy.
- Version:
- 1.2
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
FileDrop.TransferableObject.Fetcher
Instead of passing your data directly to theFileDrop.TransferableObject
constructor, you may want to know exactly when your data was received in case you need to remove it from its source (or do anyting else to it).
-
Field Summary
Fields Modifier and Type Field Description private java.awt.datatransfer.DataFlavor
customFlavor
private java.lang.Object
data
static java.awt.datatransfer.DataFlavor
DATA_FLAVOR
The defaultDataFlavor
forFileDrop.TransferableObject
has the representation class net.iharder.dnd.TransferableObject.class and the MIME type application/x-net.iharder.dnd.TransferableObject.private FileDrop.TransferableObject.Fetcher
fetcher
static java.lang.String
MIME_TYPE
The MIME type forDATA_FLAVOR
is application/x-net.iharder.dnd.TransferableObject.
-
Constructor Summary
Constructors Constructor Description TransferableObject(FileDrop.TransferableObject.Fetcher fetcher)
Creates a newFileDrop.TransferableObject
that will return the object that is returned by fetcher.TransferableObject(java.lang.Class dataClass, FileDrop.TransferableObject.Fetcher fetcher)
Creates a newFileDrop.TransferableObject
that will return the object that is returned by fetcher.TransferableObject(java.lang.Object data)
Creates a newFileDrop.TransferableObject
that wraps data.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.awt.datatransfer.DataFlavor
getCustomDataFlavor()
Returns the customDataFlavor
associated with the encapsulated object or null if theFileDrop.TransferableObject.Fetcher
constructor was used without passing aClass
.java.lang.Object
getTransferData(java.awt.datatransfer.DataFlavor flavor)
Returns the data encapsulated in thisFileDrop.TransferableObject
.java.awt.datatransfer.DataFlavor[]
getTransferDataFlavors()
Returns a two- or three-element array containing first the custom data flavor, if one was created in the constructors, second the defaultDATA_FLAVOR
associated withFileDrop.TransferableObject
, and third thejava.awt.datatransfer.DataFlavor.stringFlavor
.boolean
isDataFlavorSupported(java.awt.datatransfer.DataFlavor flavor)
Returns true if flavor is one of the supported flavors.
-
-
-
Field Detail
-
MIME_TYPE
public static final java.lang.String MIME_TYPE
The MIME type forDATA_FLAVOR
is application/x-net.iharder.dnd.TransferableObject.- Since:
- 1.1
- See Also:
- Constant Field Values
-
DATA_FLAVOR
public static final java.awt.datatransfer.DataFlavor DATA_FLAVOR
The defaultDataFlavor
forFileDrop.TransferableObject
has the representation class net.iharder.dnd.TransferableObject.class and the MIME type application/x-net.iharder.dnd.TransferableObject.- Since:
- 1.1
-
fetcher
private FileDrop.TransferableObject.Fetcher fetcher
-
data
private java.lang.Object data
-
customFlavor
private java.awt.datatransfer.DataFlavor customFlavor
-
-
Constructor Detail
-
TransferableObject
public TransferableObject(java.lang.Object data)
Creates a newFileDrop.TransferableObject
that wraps data. Along with theDATA_FLAVOR
associated with this class, this creates a custom data flavor with a representation class determined fromdata.getClass()
and the MIME type application/x-net.iharder.dnd.TransferableObject.- Parameters:
data
- The data to transfer- Since:
- 1.1
-
TransferableObject
public TransferableObject(FileDrop.TransferableObject.Fetcher fetcher)
Creates a newFileDrop.TransferableObject
that will return the object that is returned by fetcher. No custom data flavor is set other than the defaultDATA_FLAVOR
.- Parameters:
fetcher
- TheFileDrop.TransferableObject.Fetcher
that will return the data object- Since:
- 1.1
- See Also:
FileDrop.TransferableObject.Fetcher
-
TransferableObject
public TransferableObject(java.lang.Class dataClass, FileDrop.TransferableObject.Fetcher fetcher)
Creates a newFileDrop.TransferableObject
that will return the object that is returned by fetcher. Along with theDATA_FLAVOR
associated with this class, this creates a custom data flavor with a representation class dataClass and the MIME type application/x-net.iharder.dnd.TransferableObject.- Parameters:
dataClass
- TheClass
to use in the custom data flavorfetcher
- TheFileDrop.TransferableObject.Fetcher
that will return the data object- Since:
- 1.1
- See Also:
FileDrop.TransferableObject.Fetcher
-
-
Method Detail
-
getCustomDataFlavor
public java.awt.datatransfer.DataFlavor getCustomDataFlavor()
Returns the customDataFlavor
associated with the encapsulated object or null if theFileDrop.TransferableObject.Fetcher
constructor was used without passing aClass
.- Returns:
- The custom data flavor for the encapsulated object
- Since:
- 1.1
-
getTransferDataFlavors
public java.awt.datatransfer.DataFlavor[] getTransferDataFlavors()
Returns a two- or three-element array containing first the custom data flavor, if one was created in the constructors, second the defaultDATA_FLAVOR
associated withFileDrop.TransferableObject
, and third thejava.awt.datatransfer.DataFlavor.stringFlavor
.- Specified by:
getTransferDataFlavors
in interfacejava.awt.datatransfer.Transferable
- Returns:
- An array of supported data flavors
- Since:
- 1.1
-
getTransferData
public java.lang.Object getTransferData(java.awt.datatransfer.DataFlavor flavor) throws java.awt.datatransfer.UnsupportedFlavorException, java.io.IOException
Returns the data encapsulated in thisFileDrop.TransferableObject
. If theFileDrop.TransferableObject.Fetcher
constructor was used, then this is when thegetObject()
method will be called. If the requested data flavor is not supported, then thegetObject()
method will not be called.- Specified by:
getTransferData
in interfacejava.awt.datatransfer.Transferable
- Parameters:
flavor
- The data flavor for the data to return- Returns:
- The dropped data
- Throws:
java.awt.datatransfer.UnsupportedFlavorException
java.io.IOException
- Since:
- 1.1
-
isDataFlavorSupported
public boolean isDataFlavorSupported(java.awt.datatransfer.DataFlavor flavor)
Returns true if flavor is one of the supported flavors. Flavors are supported using theequals(...)
method.- Specified by:
isDataFlavorSupported
in interfacejava.awt.datatransfer.Transferable
- Parameters:
flavor
- The data flavor to check- Returns:
- Whether or not the flavor is supported
- Since:
- 1.1
-
-