下面列出了javafx.scene.input.DragEvent#getTarget ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public void handle(final DragEvent event) {
final EventTarget target = event.getTarget();
if (target instanceof Node) {
dragEntered((Node) target, event);
}
}
@Override
public void handle(final DragEvent event) {
final EventTarget target = event.getTarget();
if (target instanceof Node) {
dragExited((Node) target, event);
}
}
@Override
public void handle(final DragEvent event) {
final EventTarget target = event.getTarget();
if (event.getGestureSource() != target
&& (target instanceof Node)) {
final Node targetNode = (Node) target;
dragOver(targetNode, event);
}
}
/**
* @param target
* The targeted {@link Node}
* @param event
* The original {@link DragEvent}
*/
protected void dragOver(final Node target, final DragEvent event) {
final IViewer viewer = PartUtils.retrieveViewer(getDomain(), target);
if (viewer == null) {
return;
}
if (viewer instanceof InfiniteCanvasViewer) {
final InfiniteCanvas canvas = ((InfiniteCanvasViewer) viewer)
.getCanvas();
// if any node in the target hierarchy is a scrollbar,
// do not process the event
if (event.getTarget() instanceof Node) {
Node targetNode = (Node) event.getTarget();
while (targetNode != null) {
if (targetNode == canvas.getHorizontalScrollBar()
|| targetNode == canvas.getVerticalScrollBar()) {
return;
}
targetNode = targetNode.getParent();
}
}
}
final Scene scene = target.getScene();
if (scene == null) {
return;
}
// determine viewer that contains the given target part
activeViewer = PartUtils.retrieveViewer(getDomain(), target);
final List<? extends IOnDragDropHandler> dragDropPolicies = getHandlerResolver()
.resolve(DragDropGesture.this, target, activeViewer,
ON_DRAGDROP_HANDLER_KEY);
setActiveHandlers(activeViewer, dragDropPolicies);
if (dragDropPolicies != null && !dragDropPolicies.isEmpty()) {
for (final IOnDragDropHandler dragDropPolicy : dragDropPolicies) {
dragDropPolicy.dragOver(event);
}
}
}