public class MetaTreeNodeDnDHandler extends Object implements DragGestureListener, DropTargetListener, DragSourceListener, de.cismet.connectioncontext.ConnectionContextProvider
| Constructor and Description |
|---|
MetaTreeNodeDnDHandler(MetaCatalogueTree metaTree)
Creates a new MetaTreeNodeDnDHandler object.
|
| Modifier and Type | Method and Description |
|---|---|
void |
dragDropEnd(DragSourceDropEvent dsde) |
void |
dragEnter(DragSourceDragEvent dsde) |
void |
dragEnter(DropTargetDragEvent dtde) |
void |
dragExit(DragSourceEvent dse) |
void |
dragExit(DropTargetEvent dte) |
void |
dragGestureRecognized(DragGestureEvent dge) |
void |
dragOver(DragSourceDragEvent dsde) |
void |
dragOver(DropTargetDragEvent e) |
void |
drop(DropTargetDropEvent dtde) |
void |
dropActionChanged(DragSourceDragEvent dsde) |
void |
dropActionChanged(DropTargetDragEvent dtde) |
de.cismet.connectioncontext.ConnectionContext |
getConnectionContext() |
BufferedImage |
getDragImage()
private BufferedImage getDragImage(TreePath treePath, TreeNode treeNode, Rectangle pathBounds) { // Get the cell
renderer (which is a JLabel) for the path being dragged JLabel cellRenderer = (JLabel)
this.metaTree.getCellRenderer().getTreeCellRendererComponent(this.metaTree, treeNode, false,
this.metaTree.isExpanded(treePath), treeNode.isLeaf(), 0, false);
cellRenderer.setSize((int)pathBounds.getWidth(), (int)pathBounds.getHeight()); // <-- The layout manager would
normally do this // Get a buffered image of the selection for dragging a ghost image BufferedImage dragImage =
new BufferedImage((int)pathBounds.getWidth(), (int)pathBounds.getHeight(), BufferedImage.TYPE_INT_ARGB_PRE);
Graphics2D g2 = dragImage.createGraphics(); // Ask the cell renderer to paint itself into the BufferedImage
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC, 0.5f)); // Make the image ghostlike
cellRenderer.paint(g2); // Now paint a gradient UNDER the ghosted JLabel text (but not under the icon if any) //
Note: this will need tweaking if your icon is not positioned to the left of the text Icon icon =
cellRenderer.getIcon(); int nStartOfText = (icon == null) ? 0 : icon.getIconWidth() +
cellRenderer.getIconTextGap(); g2.setComposite(AlphaComposite.getInstance(AlphaComposite.DST_OVER, 0.5f)); //
Make the gradient ghostlike g2.setPaint(new GradientPaint(nStartOfText, 0, SystemColor.controlShadow,
this.metaTree.getWidth(), 0, new Color(255,255,255,0))); g2.fillRect(nStartOfText, 0, this.metaTree.getWidth(),
dragImage.getHeight()); g2.dispose(); return dragImage; }
|
BufferedImage |
getDragImage(JTree tree)
DOCUMENT ME!
|
void |
setDragImage(BufferedImage dragImage)
DOCUMENT ME!
|
void |
updateDragMark(JTree tree,
Point location)
DOCUMENT ME!
|
public MetaTreeNodeDnDHandler(MetaCatalogueTree metaTree)
metaTree - DOCUMENT ME!public void dragGestureRecognized(DragGestureEvent dge)
dragGestureRecognized in interface DragGestureListenerpublic void drop(DropTargetDropEvent dtde)
drop in interface DropTargetListenerpublic void dragDropEnd(DragSourceDropEvent dsde)
dragDropEnd in interface DragSourceListenerpublic void updateDragMark(JTree tree, Point location)
tree - DOCUMENT ME!location - DOCUMENT ME!public BufferedImage getDragImage(JTree tree)
tree - DOCUMENT ME!public void dragOver(DropTargetDragEvent e)
dragOver in interface DropTargetListenerpublic void dragOver(DragSourceDragEvent dsde)
dragOver in interface DragSourceListenerpublic void dragEnter(DropTargetDragEvent dtde)
dragEnter in interface DropTargetListenerpublic void dragEnter(DragSourceDragEvent dsde)
dragEnter in interface DragSourceListenerpublic void dragExit(DragSourceEvent dse)
dragExit in interface DragSourceListenerpublic void dragExit(DropTargetEvent dte)
dragExit in interface DropTargetListenerpublic void dropActionChanged(DropTargetDragEvent dtde)
dropActionChanged in interface DropTargetListenerpublic void dropActionChanged(DragSourceDragEvent dsde)
dropActionChanged in interface DragSourceListenerpublic BufferedImage getDragImage()
public void setDragImage(BufferedImage dragImage)
dragImage - DOCUMENT ME!public final de.cismet.connectioncontext.ConnectionContext getConnectionContext()
getConnectionContext in interface de.cismet.connectioncontext.ConnectionContextProviderCopyright © 2012–2026 cismet GmbH. All rights reserved.