N - nodes typeT - tree typepublic abstract class AbstractTreeTransferHandler<N extends UniqueNode,T extends WebTree<N>,M extends WebTreeModel<N>>
extends javax.swing.TransferHandler
| Modifier and Type | Field and Description |
|---|---|
protected java.util.Map<java.lang.String,java.util.List<java.lang.Integer>> |
draggedNodeIndices
Map of node indices lists under their parent node IDs.
|
protected java.util.List<N> |
draggedNodes
Array of dragged nodes.
|
protected java.util.List<TreeDropHandler<N,T>> |
dropHandlers
Transferred data handlers.
|
protected boolean |
expandMultiplyNodes
Whether or not should expand multiply dragged nodes when they are dropped onto the tree.
|
protected boolean |
expandSingleNode
Whether or not should expand single dragged node when it is dropped onto the tree.
|
protected boolean |
optimizeDraggedNodes
Whether or not should optimize dragged nodes list to minimum.
|
| Constructor and Description |
|---|
AbstractTreeTransferHandler()
Constructs new tree transfer handler.
|
| Modifier and Type | Method and Description |
|---|---|
protected abstract boolean |
canBeDragged(T tree,
java.util.List<N> nodes)
Returns whether the specified nodes drag can be started or not.
|
protected boolean |
canDropTo(T tree,
N destination)
Returns whether or not specified destination is acceptable for drop.
|
boolean |
canImport(javax.swing.TransferHandler.TransferSupport support) |
protected abstract N |
copy(T tree,
N node)
Returns node copy used in createTransferable.
|
protected java.util.List<TreeDropHandler<N,T>> |
createDropHandlers()
Returns supported drop handlers.
|
protected java.awt.datatransfer.Transferable |
createTransferable(javax.swing.JComponent c)
Creates a Transferable to use as the source for a data transfer.
|
protected java.awt.datatransfer.Transferable |
createTransferable(T tree,
java.util.List<N> nodes)
Returns new transferable based on dragged nodes.
|
protected void |
exportDone(javax.swing.JComponent source,
java.awt.datatransfer.Transferable data,
int action)
Invoked after data has been exported.
|
protected <O> java.util.List<O> |
extract(java.util.List<N> nodes)
Returns user objects extracted from specified nodes.
|
protected int |
getAdjustedDropIndex(int dropIndex,
int dropAction,
N parent)
Returns properly adjusted nodes drop index.
|
int |
getSourceActions(javax.swing.JComponent c)
Returns the type of transfer actions supported by the source.
|
protected java.util.List<TreeDropHandler<N,T>> |
getSupportedDropHandlers(javax.swing.TransferHandler.TransferSupport support)
Returns list of drop handlers supporting this drop operation.
|
boolean |
importData(javax.swing.TransferHandler.TransferSupport support) |
protected void |
informNodesDropped(T tree,
java.util.List<N> nodes,
N parent,
M model,
int index)
Informing about nodes drop operation.
|
protected boolean |
isCopyAction(int action)
Returns whether action is COPY or not.
|
boolean |
isExpandMultiplyNodes()
Returns whether or not should expand multiply dragged nodes when they are dropped onto the tree.
|
boolean |
isExpandSingleNode()
Returns whether should expand single dragged node when it is dropped onto the tree or not.
|
protected boolean |
isMoveAction(int action)
Returns whether action is MOVE or not.
|
boolean |
isOptimizeDraggedNodes()
Return whether or not should optimize dragged nodes list to minimum.
|
void |
nodesDropped(java.util.List<N> nodes,
N parent,
T tree,
M model,
int index)
Informs about nodes drop operation completition in a separate tree thread.
|
protected boolean |
performDropOperation(T tree,
java.util.List<N> nodes,
N parent,
M model,
int index)
Performs actual nodes drop operation.
|
protected boolean |
prepareDropOperation(javax.swing.TransferHandler.TransferSupport support,
T tree,
java.util.List<N> nodes,
int dropIndex,
N parent,
M model)
Performs all preparations required to perform drop operation and calls for actual drop when ready.
|
protected void |
removeTreeNodes(T tree,
java.util.List<N> nodesToRemove)
Asks tree to remove nodes after drag move operation has completed.
|
void |
setExpandMultiplyNodes(boolean expand)
Sets whether or not should expand multiply dragged nodes when they are dropped onto the tree.
|
void |
setExpandSingleNode(boolean expand)
Sets whether should expand single dragged node when it is dropped onto the tree or not.
|
void |
setOptimizeDraggedNodes(boolean optimize)
Sets whether or not should optimize dragged nodes list to minimum.
|
java.lang.String |
toString() |
protected boolean optimizeDraggedNodes
protected boolean expandSingleNode
protected boolean expandMultiplyNodes
protected java.util.List<TreeDropHandler<N extends UniqueNode,T extends WebTree<N>>> dropHandlers
protected java.util.List<N extends UniqueNode> draggedNodes
protected java.util.Map<java.lang.String,java.util.List<java.lang.Integer>> draggedNodeIndices
public AbstractTreeTransferHandler()
protected java.util.List<TreeDropHandler<N,T>> createDropHandlers()
public boolean isOptimizeDraggedNodes()
public void setOptimizeDraggedNodes(boolean optimize)
optimize - whether or not should optimize dragged nodes list to minimumpublic boolean isExpandSingleNode()
public void setExpandSingleNode(boolean expand)
expand - whether should expand single dragged node when it is dropped onto the tree or notpublic boolean isExpandMultiplyNodes()
public void setExpandMultiplyNodes(boolean expand)
expand - whether or not should expand multiply dragged nodes when they are dropped onto the treepublic int getSourceActions(javax.swing.JComponent c)
COPY, MOVE and LINK.
Returning NONE disables transfers from the component.getSourceActions in class javax.swing.TransferHandlerc - the component holding the data to be transferredprotected java.awt.datatransfer.Transferable createTransferable(javax.swing.JComponent c)
createTransferable in class javax.swing.TransferHandlerc - the component holding the data to be transferred, provided to enable sharing of TransferHandlersprotected abstract boolean canBeDragged(T tree, java.util.List<N> nodes)
tree - source treenodes - nodes to dragprotected abstract N copy(T tree, N node)
tree - source treenode - node to copyprotected java.awt.datatransfer.Transferable createTransferable(T tree, java.util.List<N> nodes)
tree - source treenodes - dragged nodespublic boolean canImport(javax.swing.TransferHandler.TransferSupport support)
canImport in class javax.swing.TransferHandlerprotected java.util.List<TreeDropHandler<N,T>> getSupportedDropHandlers(javax.swing.TransferHandler.TransferSupport support)
support - transfer support dataprotected boolean canDropTo(T tree, N destination)
tree - destination treedestination - node onto which drop was performedpublic boolean importData(javax.swing.TransferHandler.TransferSupport support)
importData in class javax.swing.TransferHandlerprotected boolean prepareDropOperation(javax.swing.TransferHandler.TransferSupport support,
T tree,
java.util.List<N> nodes,
int dropIndex,
N parent,
M model)
support - transfer support datatree - tree to drop nodes ontonodes - list of nodes to dropdropIndex - preliminary nodes drop indexparent - parent node to drop nodes intomodel - tree modelprotected boolean performDropOperation(T tree, java.util.List<N> nodes, N parent, M model, int index)
tree - tree to drop nodes ontonodes - list of nodes to dropparent - parent node to drop nodes intomodel - tree modelindex - nodes drop indexprotected void informNodesDropped(T tree, java.util.List<N> nodes, N parent, M model, int index)
tree - tree nodes were dropped ontonodes - list of dropped nodesparent - parent where nodes were droppedmodel - tree modelindex - nodes drop indexpublic void nodesDropped(java.util.List<N> nodes, N parent, T tree, M model, int index)
nodes - list of nodes to dropparent - parent node to drop nodes intotree - tree to drop nodes ontomodel - tree modelindex - nodes drop indexprotected int getAdjustedDropIndex(int dropIndex,
int dropAction,
N parent)
dropIndex - drop index if dropped between nodes under dropLocation node or -1 if dropped directly onto dropLocation nodedropAction - actual drop actionparent - parent node to drop nodes into @return properly adjusted nodes drop indexprotected void exportDone(javax.swing.JComponent source,
java.awt.datatransfer.Transferable data,
int action)
exportDone in class javax.swing.TransferHandlersource - the component that was the source of the datadata - the data that was transferred or possibly null if the action is NONEaction - the actual action that was performedprotected void removeTreeNodes(T tree, java.util.List<N> nodesToRemove)
tree - tree to remove nodes fromnodesToRemove - nodes that should be removedprotected <O> java.util.List<O> extract(java.util.List<N> nodes)
O - user object typenodes - list of nodes to extract user objects fromprotected boolean isMoveAction(int action)
action - drag actionprotected boolean isCopyAction(int action)
action - drag actionpublic java.lang.String toString()
toString in class java.lang.Object