|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object javax.swing.TransferHandler
This class is used to handle the transfer of a Transferable
to and from Swing components. The Transferable
is used to
represent data that is exchanged via a cut, copy, or paste
to/from a clipboard. It is also used in drag-and-drop operations
to represent a drag from a component, and a drop to a component.
Swing provides functionality that automatically supports cut, copy,
and paste keyboard bindings that use the functionality provided by
an implementation of this class. Swing also provides functionality
that automatically supports drag and drop that uses the functionality
provided by an implementation of this class. The Swing developer can
concentrate on specifying the semantics of a transfer primarily by setting
the transferHandler
property on a Swing component.
This class is implemented to provide a default behavior of transferring
a component property simply by specifying the name of the property in
the constructor. For example, to transfer the foreground color from
one component to another either via the clipboard or a drag and drop operation
a TransferHandler
can be constructed with the string "foreground". The
built in support will use the color returned by getForeground
as the source
of the transfer, and setForeground
for the target of a transfer.
Nested Class Summary | |
private static class |
TransferHandler.DragHandler
This is the default drag handler for drag and drop operations that use the TransferHandler . |
private static class |
TransferHandler.DropHandler
|
(package private) static class |
TransferHandler.PropertyTransferable
|
private static class |
TransferHandler.SwingDragGestureRecognizer
|
(package private) static class |
TransferHandler.SwingDropTarget
This is the default drop target for drag and drop operations if one isn't provided by the developer. |
(package private) static class |
TransferHandler.TransferAction
|
Field Summary | |
static int |
COPY
An int representing a "copy" transfer action.
|
static int |
COPY_OR_MOVE
An int representing a source action capability of either
"copy" or "move". |
(package private) static Action |
copyAction
|
(package private) static Action |
cutAction
|
private static DropTargetListener |
dropLinkage
|
private static int |
LINK
An int representing a "link" transfer action.
|
static int |
MOVE
An int representing a "move" transfer action.
|
static int |
NONE
An int representing no transfer action. |
(package private) static Action |
pasteAction
|
private String |
propertyName
|
private static TransferHandler.SwingDragGestureRecognizer |
recognizer
|
Constructor Summary | |
protected |
TransferHandler()
Convenience constructor for subclasses. |
|
TransferHandler(String property)
Constructs a transfer handler that can transfer a Java Bean property from one component to another via the clipboard or a drag and drop operation. |
Method Summary | |
boolean |
canImport(JComponent comp,
DataFlavor[] transferFlavors)
Indicates whether a component would accept an import of the given set of data flavors prior to actually attempting to import it. |
protected Transferable |
createTransferable(JComponent c)
Creates a Transferable to use as the source for
a data transfer. |
void |
exportAsDrag(JComponent comp,
InputEvent e,
int action)
Causes the Swing drag support to be initiated. |
protected void |
exportDone(JComponent source,
Transferable data,
int action)
Invoked after data has been exported. |
void |
exportToClipboard(JComponent comp,
Clipboard clip,
int action)
Causes a transfer from the given component to the given clipboard. |
static Action |
getCopyAction()
Returns an Action that behaves like a 'copy' operation.
|
static Action |
getCutAction()
Returns an Action that behaves like a 'cut' operation.
|
private static DropTargetListener |
getDropTargetListener()
|
static Action |
getPasteAction()
Returns an Action that behaves like a 'paste' operation.
|
private DataFlavor |
getPropertyDataFlavor(Class k,
DataFlavor[] flavors)
Fetches the data flavor from the array of possible flavors that has data of the type represented by property type. |
private java.beans.PropertyDescriptor |
getPropertyDescriptor(JComponent comp)
Fetches the property descriptor for the property assigned to this transfer handler on the given component (transfer handler may be shared). |
int |
getSourceActions(JComponent c)
Returns the type of transfer actions supported by the source. |
Icon |
getVisualRepresentation(Transferable t)
Returns an object that establishes the look of a transfer. |
boolean |
importData(JComponent comp,
Transferable t)
Causes a transfer to a component from a clipboard or a DND drop operation. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final int NONE
int
representing no transfer action.
public static final int COPY
int
representing a "copy" transfer action.
This value is used when data is copied to a clipboard
or copied elsewhere in a drag and drop operation.
public static final int MOVE
int
representing a "move" transfer action.
This value is used when data is moved to a clipboard (i.e. a cut)
or moved elsewhere in a drag and drop operation.
public static final int COPY_OR_MOVE
int
representing a source action capability of either
"copy" or "move".
private static final int LINK
int
representing a "link" transfer action.
This value is used to specify that data should be linked in a drag
and drop operation.
private String propertyName
private static TransferHandler.SwingDragGestureRecognizer recognizer
private static DropTargetListener dropLinkage
static final Action cutAction
static final Action copyAction
static final Action pasteAction
Constructor Detail |
public TransferHandler(String property)
property
- the name of the property to transfer; this can
be null
if there is no property associated with the transfer
handler (a subclass that performs some other kind of transfer, for example)protected TransferHandler()
Method Detail |
public static Action getCutAction()
Action
that behaves like a 'cut' operation.
That is, this will invoke exportToClipboard
with
a MOVE
argument on the TransferHandler
associated with the JComponent
that is the source of
the ActionEvent
.
public static Action getCopyAction()
Action
that behaves like a 'copy' operation.
That is, this will invoke exportToClipboard
with
a COPY
argument on the TransferHandler
associated with the JComponent
that is the source of
the ActionEvent
.
public static Action getPasteAction()
Action
that behaves like a 'paste' operation.
That is, this will invoke importData
on the
TransferHandler
associated with the JComponent
that is the source of
the ActionEvent
.
public void exportAsDrag(JComponent comp, InputEvent e, int action)
javax.swing.plaf.basic
package if the dragEnabled property is set on the component.
This can be called by custom UI
implementations to use the Swing drag support. This method can also be called
by a Swing extension written as a subclass of JComponent
to take advantage of the Swing drag support.
The transfer will not necessarily have been completed at the
return of this call (i.e. the call does not block waiting for the drop).
The transfer will take place through the Swing implementation of the
java.awt.dnd
mechanism, requiring no further effort
from the developer. The exportDone
method will be called
when the transfer has completed.
comp
- the component holding the data to be transferred; this
argument is provided to enable sharing of TransferHandler
s by
multiple componentse
- the event that triggered the transferaction
- the transfer action initially requested; this should
be a value of either COPY
or MOVE
;
the value may be changed during the course of the drag operationpublic void exportToClipboard(JComponent comp, Clipboard clip, int action)
The transfer will have been completed at the
return of this call. The transfer will take place using the
java.awt.datatransfer
mechanism,
requiring no further effort from the developer.
The exportDone
method will be called when the
transfer has completed.
comp
- the component holding the data to be transferred; this
argument is provided to enable sharing of TransferHandler
s by
multiple componentsclip
- the clipboard to transfer the data intoaction
- the transfer action requested; this should
be a value of either COPY
or MOVE
;
the operation performed is the intersection of the transfer
capabilities given by getSourceActions and the requested action;
the intersection may result in an action of NONE
if the requested action isn't supportedpublic boolean importData(JComponent comp, Transferable t)
Transferable
represents
the data to be imported into the component.
comp
- the component to receive the transfer; this
argument is provided to enable sharing of TransferHandler
s
by multiple componentst
- the data to import
public boolean canImport(JComponent comp, DataFlavor[] transferFlavors)
comp
- the component to receive the transfer; this
argument is provided to enable sharing of TransferHandlers
by multiple componentstransferFlavors
- the data formats available
public int getSourceActions(JComponent c)
COPY
only should be advertised in that case.
c
- the component holding the data to be transferred; this
argument is provided to enable sharing of TransferHandler
s
by multiple components.
COPY
if the transfer property can be found,
otherwise returns NONE
; a return value of
of NONE
disables any transfers out of the componentpublic Icon getVisualRepresentation(Transferable t)
Icon
interface should
not alter the graphics clip or alpha level.
The icon implementation need not be rectangular or paint all of the
bounding rectangle and logic that calls the icons paint method should
not assume the all bits are painted. null
is a valid return value
for this method and indicates there is no visual representation provided.
In that case, the calling logic is free to represent the
transferable however it wants.
The default Swing logic will not do an alpha blended drag animation if
the return is null
.
t
- the data to be transferred; this value is expected to have been
created by the createTransferable
method
null
, indicating
there is no default visual representationprotected Transferable createTransferable(JComponent c)
Transferable
to use as the source for
a data transfer. Returns the representation of the data to
be transferred, or null
if the component's
property is null
c
- the component holding the data to be transferred; this
argument is provided to enable sharing of TransferHandler
s
by multiple components
null
if the property associated with c
is null
protected void exportDone(JComponent source, Transferable data, int action)
MOVE
.
This method is implemented to do nothing since MOVE
is not a supported action of this implementation
(getSourceActions
does not include MOVE
).
source
- the component that was the source of the datadata
- The data that was transferred or possibly null
if the action is NONE
.action
- the actual action that was performedprivate java.beans.PropertyDescriptor getPropertyDescriptor(JComponent comp)
null
if the property descriptor can't be found
or there is an error attempting to fetch the property descriptor.
private DataFlavor getPropertyDataFlavor(Class k, DataFlavor[] flavors)
private static DropTargetListener getDropTargetListener()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |