uk.ac.starlink.datanode.tree
Class DataNodeTransferHandler

java.lang.Object
  extended by javax.swing.TransferHandler
      extended by uk.ac.starlink.datanode.tree.DataNodeTransferHandler
All Implemented Interfaces:
Serializable

public class DataNodeTransferHandler
extends TransferHandler

Handles transferable exports to and from from the DataNodeJTree.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class javax.swing.TransferHandler
COPY, COPY_OR_MOVE, MOVE, NONE
 
Constructor Summary
DataNodeTransferHandler()
           
 
Method Summary
 boolean canImport(JComponent comp, DataFlavor[] flavors)
          If we are configured to import data, return true, on the grounds that the DataNodeFactory should be able to have a go at turning almost anything into a DataNode.
protected  Transferable createTransferable(JComponent comp)
           
 int getSourceActions(JComponent comp)
           
 Icon getVisualRepresentation(Transferable trans)
           
 boolean importData(JComponent comp, Transferable trans)
          Attempts to import a transferable into the tree.
 void pasteSystemSelection(JComponent comp)
          Pastes the system selection into the tree window.
 void setNodeMaker(DataNodeFactory nodeMaker)
          Sets the DataNodeFactory which will be used by this handler to perform import of Transferables (convert them into DataNodes).
 
Methods inherited from class javax.swing.TransferHandler
exportAsDrag, exportDone, exportToClipboard, getCopyAction, getCutAction, getPasteAction
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DataNodeTransferHandler

public DataNodeTransferHandler()
Method Detail

getSourceActions

public int getSourceActions(JComponent comp)
Overrides:
getSourceActions in class TransferHandler

getVisualRepresentation

public Icon getVisualRepresentation(Transferable trans)
Overrides:
getVisualRepresentation in class TransferHandler

createTransferable

protected Transferable createTransferable(JComponent comp)
Overrides:
createTransferable in class TransferHandler

setNodeMaker

public void setNodeMaker(DataNodeFactory nodeMaker)
Sets the DataNodeFactory which will be used by this handler to perform import of Transferables (convert them into DataNodes). By default this is set to null; unless it is set to a non-null value, no node import will be permitted.


canImport

public boolean canImport(JComponent comp,
                         DataFlavor[] flavors)
If we are configured to import data, return true, on the grounds that the DataNodeFactory should be able to have a go at turning almost anything into a DataNode. However, only do it if the drop position would not be over a node in the tree, since that might convey a false impression of what's going to happen (the node will get appended to the root).

Overrides:
canImport in class TransferHandler

importData

public boolean importData(JComponent comp,
                          Transferable trans)
Attempts to import a transferable into the tree.

Overrides:
importData in class TransferHandler

pasteSystemSelection

public void pasteSystemSelection(JComponent comp)
Pastes the system selection into the tree window. This behaviour is seen in JTextComponent and subclasses (see javax.swing.text.DefaultCaret for the implementation), but not elsewhere in the JFC; however I think it's quite useful, it means you can grab a text string and middle-click it on top of a window to load that URL (or whatever) in.

This implementation only works with string-like contents of the selection. Short strings it feeds to the data node factory as Strings, and long ones it ignores.

Parameters:
comp - the component into which to paste


Copyright © 2015 Central Laboratory of the Research Councils. All Rights Reserved.