javax.swing

Class TransferHandler

Implemented Interfaces:
Serializable

public class TransferHandler
extends Object
implements Serializable

See Also:
Serialized Form

Field Summary

static int
COPY
static int
COPY_OR_MOVE
static int
MOVE
static int
NONE

Constructor Summary

TransferHandler()
TransferHandler(String property)

Method Summary

boolean
canImport(JComponent c, DataFlavor[] flavors)
Returns true if the data in this TransferHandler can be imported into the specified component.
protected Transferable
createTransferable(JComponent c)
Creates a Transferable that can be used to export data from the specified component.
void
exportAsDrag(JComponent c, InputEvent e, int action)
protected void
exportDone(JComponent c, Transferable data, int action)
This method is invoked after data has been exported.
void
exportToClipboard(JComponent c, Clipboard clip, int action)
Exports the property of the component c that was specified for this TransferHandler to the clipboard, performing the specified action.
static Action
getCopyAction()
static Action
getCutAction()
static Action
getPasteAction()
int
getSourceActions(JComponent c)
Icon
getVisualRepresentation(Transferable t)
boolean
importData(JComponent c, Transferable t)
Imports the transfer data represented by t into the specified component c by setting the property of this TransferHandler on that component.

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

COPY

public static final int COPY
Field Value:
1

COPY_OR_MOVE

public static final int COPY_OR_MOVE
Field Value:
3

MOVE

public static final int MOVE
Field Value:
2

NONE

public static final int NONE
Field Value:
0

Constructor Details

TransferHandler

protected TransferHandler()

TransferHandler

public TransferHandler(String property)

Method Details

canImport

public boolean canImport(JComponent c,
                         DataFlavor[] flavors)
Returns true if the data in this TransferHandler can be imported into the specified component. This will be the case when:
  • The component has a readable and writable property with the property name specified in the TransferHandler constructor.
  • There is a dataflavor with a mime type of application/x-java-jvm-local-object-ref.
  • The dataflavor's representation class matches the class of the property in the component.
Parameters:
c - the component to check
flavors - the possible data flavors
Returns:
true if the data in this TransferHandler can be imported into the specified component, false otherwise

createTransferable

protected Transferable createTransferable(JComponent c)
Creates a Transferable that can be used to export data from the specified component. This method returns null when the specified component doesn't have a readable property that matches the property name specified in the TransferHandler constructor.
Parameters:
c - the component to create a transferable for
Returns:
a Transferable that can be used to export data from the specified component, or null if the component doesn't have a readable property like the transfer handler

exportAsDrag

public void exportAsDrag(JComponent c,
                         InputEvent e,
                         int action)

exportDone

protected void exportDone(JComponent c,
                          Transferable data,
                          int action)
This method is invoked after data has been exported. Subclasses should implement this method to remove the data that has been transferred when the action was MOVE. The default implementation does nothing because MOVE is not supported.
Parameters:
c - the source component
data - the data that has been transferred or null when the action is NONE
action - the action that has been performed

exportToClipboard

public void exportToClipboard(JComponent c,
                              Clipboard clip,
                              int action)
            throws IllegalStateException
Exports the property of the component c that was specified for this TransferHandler to the clipboard, performing the specified action. This will check if the action is allowed by calling getSourceActions(JComponent). If the action is not allowed, then no export is performed. In either case the method exportDone(JComponent,Transferable,int) will be called with the action that has been performed, or NONE if the action was not allowed or could otherwise not be completed. Any IllegalStateException that is thrown by the Clipboard due to beeing unavailable will be propagated through this method.
Parameters:
c - the component from which to export
clip - the clipboard to which the data will be exported
action - the action to perform
Throws:
IllegalStateException - when the clipboard is not available

getCopyAction

public static Action getCopyAction()

getCutAction

public static Action getCutAction()

getPasteAction

public static Action getPasteAction()

getSourceActions

public int getSourceActions(JComponent c)

getVisualRepresentation

public Icon getVisualRepresentation(Transferable t)

importData

public boolean importData(JComponent c,
                          Transferable t)
Imports the transfer data represented by t into the specified component c by setting the property of this TransferHandler on that component. If this succeeds, this method returns true, otherwise false.
Parameters:
c - the component to import into
t - the transfer data to import
Returns:
true if the transfer succeeds, false otherwise

TransferHandler.java -- Copyright (C) 2004, 2005, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.