public static final class TransferHandler.TransferSupport extends Object
The main purpose of this class is to provide the information needed by a developer to determine the suitability of a transfer or to import the data contained within. But it also doubles as a controller for customizing properties during drag and drop, such as whether or not to show the drop location, and which drop action to use.
Developers typically need not create instances of this class. Instead, they are something provided by the DnD implementation to certain methods in TransferHandler.
| Constructor and Description |
|---|
TransferSupport(Component
Create a
TransferSupport with
isDrop()
false for the given component and
Transferable.
|
| Modifier and Type | Method and Description |
|---|---|
Component |
getComponent()
Returns the target component of this transfer.
|
DataFlavor |
getDataFlavors()
Returns the data flavors for this transfer.
|
int |
getDropAction()
Returns the action chosen for the drop, when this
TransferSupport represents a drop.
|
TransferHandler |
getDropLocation()
Returns the current (non-
null) drop location for the component, when this
TransferSupport represents a drop.
|
int |
getSourceDropActions()
Returns the drag source's supported drop actions, when this
TransferSupport represents a drop.
|
Transferable |
getTransferable()
Returns the
Transferable associated with this transfer.
|
int |
getUserDropAction()
Returns the user drop action for the drop, when this
TransferSupport represents a drop.
|
boolean |
isDataFlavorSupported(DataFlavor
Returns whether or not the given data flavor is supported.
|
boolean |
isDrop()
Returns whether or not this
TransferSupport represents a drop operation.
|
void |
setDropAction(int dropAction)
Sets the drop action for the transfer - which must represent a drop - to the given action, instead of the default user drop action.
|
void |
setShowDropLocation(boolean showDropLocation)
Sets whether or not the drop location should be visually indicated for the transfer - which must represent a drop.
|
public TransferSupport(Componentcomponent, Transferable transferable)
TransferSupport with
isDrop()
false for the given component and
Transferable.
component - the target component
transferable - the transferable
NullPointerException - if either parameter is
null
public boolean isDrop()
TransferSupport represents a drop operation.
true if this is a drop operation,
false otherwise.
public ComponentgetComponent()
public TransferHandler.DropLocation getDropLocation()
null) drop location for the component, when this
TransferSupport represents a drop.
Note: For components with built-in drop support, this location will be a subclass of DropLocation of the same type returned by that component's getDropLocation method.
This method is only for use with drag and drop transfers. Calling it when isDrop() is false results in an IllegalStateException.
IllegalStateException - if this is not a drop
isDrop()
public void setShowDropLocation(boolean showDropLocation)
TransferHandler has said it can accept the import represented by this
TransferSupport. With this method you can force the drop location to always be shown, or always not be shown.
This method is only for use with drag and drop transfers. Calling it when isDrop() is false results in an IllegalStateException.
showDropLocation - whether or not to indicate the drop location
IllegalStateException - if this is not a drop
isDrop()
public void setDropAction(int dropAction)
COPY,
MOVE or
LINK.
This method is only for use with drag and drop transfers. Calling it when isDrop() is false results in an IllegalStateException.
dropAction - the drop action
IllegalStateException - if this is not a drop
IllegalArgumentException - if an invalid action is specified
getDropAction(),
getUserDropAction(),
getSourceDropActions(),
isDrop()
public int getDropAction()
TransferSupport represents a drop.
Unless explicitly chosen by way of setDropAction, this returns the user drop action provided by getUserDropAction.
You may wish to query this in TransferHandler's importData method to customize processing based on the action.
This method is only for use with drag and drop transfers. Calling it when isDrop() is false results in an IllegalStateException.
IllegalStateException - if this is not a drop
setDropAction(int),
getUserDropAction(),
isDrop()
public int getUserDropAction()
TransferSupport represents a drop.
The user drop action is chosen for a drop as described in the documentation for DropTargetDragEvent and DropTargetDropEvent. A different action may be chosen as the drop action by way of the setDropAction method.
You may wish to query this in TransferHandler's canImport method when determining the suitability of a drop or when deciding on a drop action to explicitly choose.
This method is only for use with drag and drop transfers. Calling it when isDrop() is false results in an IllegalStateException.
IllegalStateException - if this is not a drop
setDropAction(int),
getDropAction(),
isDrop()
public int getSourceDropActions()
TransferSupport represents a drop.
The source actions represent the set of actions supported by the source of this transfer, and are represented as some bitwise-OR combination of COPY, MOVE and LINK. You may wish to query this in TransferHandler's canImport method when determining the suitability of a drop or when deciding on a drop action to explicitly choose. To determine if a particular action is supported by the source, bitwise-AND the action with the source drop actions, and then compare the result against the original action. For example:
boolean copySupported = (COPY & getSourceDropActions()) == COPY;
This method is only for use with drag and drop transfers. Calling it when isDrop() is false results in an IllegalStateException.
IllegalStateException - if this is not a drop
isDrop()
public DataFlavor[] getDataFlavors()
public boolean isDataFlavorSupported(DataFlavordf)
df - the
DataFlavor to test
public TransferablegetTransferable()
Transferable associated with this transfer.
Note: Unless it is necessary to fetch the Transferable directly, use one of the other methods on this class to inquire about the transfer. This may perform better than fetching the Transferable and asking it directly.
Transferable associated with this transfer