public class DOMDocumentTree.TreeDropTargetListener
extends java.lang.Object
implements java.awt.dnd.DropTargetListener
Modifier and Type | Field and Description |
---|---|
private static int |
AFTER
Insert node after the current node.
|
private static int |
BEFORE
Insert node before the current node.
|
private static int |
CURRENT
Insert node as a child of the current node.
|
private javax.swing.tree.TreePath |
dragOverTreePath
The tree path that is being dragged over.
|
private java.awt.Point |
endPoint
The end point of the 'visual tip' line.
|
private javax.swing.Timer |
expandControlTimer
The timer that controls the delay of expanding the tree path that is
being dragged over.
|
private int |
expandTimeout
The delay for expanding.
|
private java.awt.Component |
originalGlassPane
The original glass pane of the tree is stored here.
|
private int |
positionIndicator
Indicates the potential drop position relative to the current node
where the dragged nodes are to be inserted.
|
private java.awt.Point |
startPoint
The start point of the 'visual tip' line.
|
private DOMDocumentTree.TransferData |
transferData
The associated transfer data.
|
private javax.swing.tree.TreePath |
treePathToExpand
The tree path that is scheduled for expand.
|
protected javax.swing.JPanel |
visualTipGlassPane
Glasspane where 'visual tip' line is drawn
|
private int |
visualTipOffset
The vertical offset where to catch the 'visual tips' of the tree node
items rectangle.
|
private int |
visualTipThickness
The thickness of the visual tip.
|
Constructor and Description |
---|
TreeDropTargetListener(DOMDocumentTree tree)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
private void |
addOnAutoscrollListener(DOMDocumentTree tree)
Adds the onAutoscroll listener.
|
void |
dragEnter(java.awt.dnd.DropTargetDragEvent dtde) |
void |
dragExit(java.awt.dnd.DropTargetEvent dte) |
void |
dragOver(java.awt.dnd.DropTargetDragEvent dtde) |
void |
drop(java.awt.dnd.DropTargetDropEvent dtde) |
void |
dropActionChanged(java.awt.dnd.DropTargetDragEvent dtde) |
private javax.swing.Timer |
getExpandTreeTimer(javax.swing.JTree tree)
Gets the timer for treepath expand.
|
private javax.swing.tree.TreeNode |
getNode(java.awt.dnd.DropTargetDragEvent dtde)
Gets the TreeNode from the DropTargetDragEvent
|
private javax.swing.tree.TreeNode |
getNodeForPath(javax.swing.tree.TreePath path)
Gets the TreeNode from the given TreePath.
|
private javax.swing.tree.TreePath |
getParentPathForPosition(javax.swing.tree.TreePath currentPath)
Finds the parent TreePath of the given current path, according to the
position indicator, where the dragged nodes should be appended.
|
private javax.swing.tree.TreePath |
getSiblingPathForPosition(javax.swing.tree.TreePath currentPath)
Finds the TreePath that is going to be next sibling to the nodes that
are being dragged.
|
private void |
scheduleExpand(javax.swing.tree.TreePath treePath,
javax.swing.JTree tree)
Schedules the expand of the given treePath on a tree.
|
private void |
setOriginalGlassPane(javax.swing.JTree tree)
Sets the original glass pane.
|
private void |
updatePositionIndicator(java.awt.dnd.DropTargetDragEvent dtde)
Sets the position indicator according to the current cursor location.
|
private void |
updateVisualTipLine(javax.swing.JTree tree,
javax.swing.tree.TreePath path)
Draws the 'visual tip' line on the glass pane.
|
private static final int BEFORE
private static final int AFTER
private static final int CURRENT
private DOMDocumentTree.TransferData transferData
private java.awt.Component originalGlassPane
private int visualTipOffset
private int visualTipThickness
private int positionIndicator
private java.awt.Point startPoint
private java.awt.Point endPoint
protected javax.swing.JPanel visualTipGlassPane
private javax.swing.Timer expandControlTimer
private int expandTimeout
private javax.swing.tree.TreePath dragOverTreePath
private javax.swing.tree.TreePath treePathToExpand
public TreeDropTargetListener(DOMDocumentTree tree)
public void dragEnter(java.awt.dnd.DropTargetDragEvent dtde)
dragEnter
in interface java.awt.dnd.DropTargetListener
public void dragOver(java.awt.dnd.DropTargetDragEvent dtde)
dragOver
in interface java.awt.dnd.DropTargetListener
public void dropActionChanged(java.awt.dnd.DropTargetDragEvent dtde)
dropActionChanged
in interface java.awt.dnd.DropTargetListener
public void drop(java.awt.dnd.DropTargetDropEvent dtde)
drop
in interface java.awt.dnd.DropTargetListener
public void dragExit(java.awt.dnd.DropTargetEvent dte)
dragExit
in interface java.awt.dnd.DropTargetListener
private void updatePositionIndicator(java.awt.dnd.DropTargetDragEvent dtde)
dtde
- DropTargetDragEventprivate javax.swing.tree.TreePath getParentPathForPosition(javax.swing.tree.TreePath currentPath)
currentPath
- The current path (the items are dragged over this path)positionIndicator
- AFTER or BEFORE - nodes should be appended to the parent
path of the given path, as siblings of the current path
CURRENT - nodes should be appended to the current path, as
its childrenprivate javax.swing.tree.TreePath getSiblingPathForPosition(javax.swing.tree.TreePath currentPath)
currentPath
- The current path (the items are dragged over this path)private javax.swing.tree.TreeNode getNodeForPath(javax.swing.tree.TreePath path)
path
- The given TreePathprivate javax.swing.tree.TreeNode getNode(java.awt.dnd.DropTargetDragEvent dtde)
dtde
- The DropTargetDragEventprivate void updateVisualTipLine(javax.swing.JTree tree, javax.swing.tree.TreePath path)
tree
- The treepath
- The path to get the boundsprivate void addOnAutoscrollListener(DOMDocumentTree tree)
tree
- The DOMDocumentTreeprivate void setOriginalGlassPane(javax.swing.JTree tree)
dte
- DropTargetEvent to get the treeprivate void scheduleExpand(javax.swing.tree.TreePath treePath, javax.swing.JTree tree)
treePath
- The treePath to expandtree
- The JTreeprivate javax.swing.Timer getExpandTreeTimer(javax.swing.JTree tree)
tree
- The JTree