类sun.awt.dnd.SunDropTargetEvent源码实例Demo

下面列出了怎么用sun.awt.dnd.SunDropTargetEvent的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: jdk1.8-source-analysis   文件: Container.java
private void trackMouseEnterExit(Component targetOver, MouseEvent e) {
    if (e instanceof SunDropTargetEvent) {
        trackDropTargetEnterExit(targetOver, e);
        return;
    }
    int id = e.getID();

    if ( id != MouseEvent.MOUSE_EXITED &&
         id != MouseEvent.MOUSE_DRAGGED &&
         id != LWD_MOUSE_DRAGGED_OVER &&
            !isMouseInNativeContainer) {
        // any event but an exit or drag means we're in the native container
        isMouseInNativeContainer = true;
        startListeningForOtherDrags();
    } else if (id == MouseEvent.MOUSE_EXITED) {
        isMouseInNativeContainer = false;
        stopListeningForOtherDrags();
    }
    Component tle = retargetMouseEnterExit(targetOver, e,
                                               targetLastEntered.get(),
                                               isMouseInNativeContainer);
    targetLastEntered = new WeakReference<>(tle);
}
 
源代码2 项目: Java8CN   文件: Container.java
private void trackMouseEnterExit(Component targetOver, MouseEvent e) {
    if (e instanceof SunDropTargetEvent) {
        trackDropTargetEnterExit(targetOver, e);
        return;
    }
    int id = e.getID();

    if ( id != MouseEvent.MOUSE_EXITED &&
         id != MouseEvent.MOUSE_DRAGGED &&
         id != LWD_MOUSE_DRAGGED_OVER &&
            !isMouseInNativeContainer) {
        // any event but an exit or drag means we're in the native container
        isMouseInNativeContainer = true;
        startListeningForOtherDrags();
    } else if (id == MouseEvent.MOUSE_EXITED) {
        isMouseInNativeContainer = false;
        stopListeningForOtherDrags();
    }
    Component tle = retargetMouseEnterExit(targetOver, e,
                                               targetLastEntered.get(),
                                               isMouseInNativeContainer);
    targetLastEntered = new WeakReference<>(tle);
}
 
源代码3 项目: jdk8u-jdk   文件: XDropTargetContextPeer.java
protected void eventProcessed(SunDropTargetEvent e, int returnValue,
                              boolean dispatcherDone) {
    /* The native context is the pointer to the XClientMessageEvent
       structure. */
    long ctxt = getNativeDragContext();
    /* If the event was not consumed, send a response to the source. */
    try {
        if (ctxt != 0 && !e.isConsumed()) {
            Iterator dropTargetProtocols =
                XDragAndDropProtocols.getDropTargetProtocols();

            while (dropTargetProtocols.hasNext()) {
                XDropTargetProtocol dropTargetProtocol =
                    (XDropTargetProtocol)dropTargetProtocols.next();
                if (dropTargetProtocol.sendResponse(ctxt, e.getID(),
                                                    returnValue)) {
                    break;
                }
            }
        }
    } finally {
        if (dispatcherDone && ctxt != 0) {
            unsafe.freeMemory(ctxt);
        }
    }
}
 
源代码4 项目: dragonwell8_jdk   文件: Container.java
private void trackMouseEnterExit(Component targetOver, MouseEvent e) {
    if (e instanceof SunDropTargetEvent) {
        trackDropTargetEnterExit(targetOver, e);
        return;
    }
    int id = e.getID();

    if ( id != MouseEvent.MOUSE_EXITED &&
         id != MouseEvent.MOUSE_DRAGGED &&
         id != LWD_MOUSE_DRAGGED_OVER &&
            !isMouseInNativeContainer) {
        // any event but an exit or drag means we're in the native container
        isMouseInNativeContainer = true;
        startListeningForOtherDrags();
    } else if (id == MouseEvent.MOUSE_EXITED) {
        isMouseInNativeContainer = false;
        stopListeningForOtherDrags();
    }
    Component tle = retargetMouseEnterExit(targetOver, e,
                                               targetLastEntered.get(),
                                               isMouseInNativeContainer);
    targetLastEntered = new WeakReference<>(tle);
}
 
源代码5 项目: jdk8u_jdk   文件: XDropTargetContextPeer.java
protected void eventProcessed(SunDropTargetEvent e, int returnValue,
                              boolean dispatcherDone) {
    /* The native context is the pointer to the XClientMessageEvent
       structure. */
    long ctxt = getNativeDragContext();
    /* If the event was not consumed, send a response to the source. */
    try {
        if (ctxt != 0 && !e.isConsumed()) {
            Iterator dropTargetProtocols =
                XDragAndDropProtocols.getDropTargetProtocols();

            while (dropTargetProtocols.hasNext()) {
                XDropTargetProtocol dropTargetProtocol =
                    (XDropTargetProtocol)dropTargetProtocols.next();
                if (dropTargetProtocol.sendResponse(ctxt, e.getID(),
                                                    returnValue)) {
                    break;
                }
            }
        }
    } finally {
        if (dispatcherDone && ctxt != 0) {
            unsafe.freeMemory(ctxt);
        }
    }
}
 
源代码6 项目: jdk8u-jdk   文件: EventQueue.java
private static int eventToCacheIndex(AWTEvent e) {
    switch(e.getID()) {
    case PaintEvent.PAINT:
        return PAINT;
    case PaintEvent.UPDATE:
        return UPDATE;
    case MouseEvent.MOUSE_MOVED:
        return MOVE;
    case MouseEvent.MOUSE_DRAGGED:
        // Return -1 for SunDropTargetEvent since they are usually synchronous
        // and we don't want to skip them by coalescing with MouseEvent or other drag events
        return e instanceof SunDropTargetEvent ? -1 : DRAG;
    default:
        return e instanceof PeerEvent ? PEER : -1;
    }
}
 
源代码7 项目: jdk8u_jdk   文件: CDropTargetContextPeer.java
@Override
protected void processMotionMessage(SunDropTargetEvent event, boolean operationChanged) {
    boolean eventInsideTarget = isEventInsideTarget(event);
    if (event.getComponent().getDropTarget() == insideTarget) {
        if (!eventInsideTarget) {
            processExitMessage(event);
            return;
        }
    } else {
        if (eventInsideTarget) {
            processEnterMessage(event);
        } else {
            return;
        }
    }
    super.processMotionMessage(event, operationChanged);
}
 
源代码8 项目: hottub   文件: WDropTargetContextPeer.java
@Override
protected void eventPosted(final SunDropTargetEvent e) {
    if (e.getID() != SunDropTargetEvent.MOUSE_DROPPED) {
        Runnable runnable = new Runnable() {
                @Override
                public void run() {
                    e.getDispatcher().unregisterAllEvents();
                }
            };
        // NOTE: this PeerEvent must be a NORM_PRIORITY event to be
        // dispatched after this SunDropTargetEvent, but before the next
        // one, so we should pass zero flags.
        PeerEvent peerEvent = new PeerEvent(e.getSource(), runnable, 0);
        SunToolkit.executeOnEventHandlerThread(peerEvent);
    }
}
 
源代码9 项目: dragonwell8_jdk   文件: WDropTargetContextPeer.java
@Override
protected void eventPosted(final SunDropTargetEvent e) {
    if (e.getID() != SunDropTargetEvent.MOUSE_DROPPED) {
        Runnable runnable = new Runnable() {
                @Override
                public void run() {
                    e.getDispatcher().unregisterAllEvents();
                }
            };
        // NOTE: this PeerEvent must be a NORM_PRIORITY event to be
        // dispatched after this SunDropTargetEvent, but before the next
        // one, so we should pass zero flags.
        PeerEvent peerEvent = new PeerEvent(e.getSource(), runnable, 0);
        SunToolkit.executeOnEventHandlerThread(peerEvent);
    }
}
 
源代码10 项目: jdk8u-jdk   文件: CDropTargetContextPeer.java
@Override
protected void processMotionMessage(SunDropTargetEvent event, boolean operationChanged) {
    boolean eventInsideTarget = isEventInsideTarget(event);
    if (event.getComponent().getDropTarget() == insideTarget) {
        if (!eventInsideTarget) {
            processExitMessage(event);
            return;
        }
    } else {
        if (eventInsideTarget) {
            processEnterMessage(event);
        } else {
            return;
        }
    }
    super.processMotionMessage(event, operationChanged);
}
 
源代码11 项目: jdk8u_jdk   文件: EventQueue.java
private static int eventToCacheIndex(AWTEvent e) {
    switch(e.getID()) {
    case PaintEvent.PAINT:
        return PAINT;
    case PaintEvent.UPDATE:
        return UPDATE;
    case MouseEvent.MOUSE_MOVED:
        return MOVE;
    case MouseEvent.MOUSE_DRAGGED:
        // Return -1 for SunDropTargetEvent since they are usually synchronous
        // and we don't want to skip them by coalescing with MouseEvent or other drag events
        return e instanceof SunDropTargetEvent ? -1 : DRAG;
    default:
        return e instanceof PeerEvent ? PEER : -1;
    }
}
 
源代码12 项目: jdk8u-jdk   文件: WDropTargetContextPeer.java
@Override
protected void eventPosted(final SunDropTargetEvent e) {
    if (e.getID() != SunDropTargetEvent.MOUSE_DROPPED) {
        Runnable runnable = new Runnable() {
                @Override
                public void run() {
                    e.getDispatcher().unregisterAllEvents();
                }
            };
        // NOTE: this PeerEvent must be a NORM_PRIORITY event to be
        // dispatched after this SunDropTargetEvent, but before the next
        // one, so we should pass zero flags.
        PeerEvent peerEvent = new PeerEvent(e.getSource(), runnable, 0);
        SunToolkit.executeOnEventHandlerThread(peerEvent);
    }
}
 
源代码13 项目: openjdk-8   文件: CDropTargetContextPeer.java
@Override
protected void processMotionMessage(SunDropTargetEvent event, boolean operationChanged) {
    boolean eventInsideTarget = isEventInsideTarget(event);
    if (event.getComponent().getDropTarget() == insideTarget) {
        if (!eventInsideTarget) {
            processExitMessage(event);
            return;
        }
    } else {
        if (eventInsideTarget) {
            processEnterMessage(event);
        } else {
            return;
        }
    }
    super.processMotionMessage(event, operationChanged);
}
 
源代码14 项目: jdk8u60   文件: WDropTargetContextPeer.java
@Override
protected void eventPosted(final SunDropTargetEvent e) {
    if (e.getID() != SunDropTargetEvent.MOUSE_DROPPED) {
        Runnable runnable = new Runnable() {
                @Override
                public void run() {
                    e.getDispatcher().unregisterAllEvents();
                }
            };
        // NOTE: this PeerEvent must be a NORM_PRIORITY event to be
        // dispatched after this SunDropTargetEvent, but before the next
        // one, so we should pass zero flags.
        PeerEvent peerEvent = new PeerEvent(e.getSource(), runnable, 0);
        SunToolkit.executeOnEventHandlerThread(peerEvent);
    }
}
 
源代码15 项目: jdk8u60   文件: XDropTargetContextPeer.java
protected void eventProcessed(SunDropTargetEvent e, int returnValue,
                              boolean dispatcherDone) {
    /* The native context is the pointer to the XClientMessageEvent
       structure. */
    long ctxt = getNativeDragContext();
    /* If the event was not consumed, send a response to the source. */
    try {
        if (ctxt != 0 && !e.isConsumed()) {
            Iterator dropTargetProtocols =
                XDragAndDropProtocols.getDropTargetProtocols();

            while (dropTargetProtocols.hasNext()) {
                XDropTargetProtocol dropTargetProtocol =
                    (XDropTargetProtocol)dropTargetProtocols.next();
                if (dropTargetProtocol.sendResponse(ctxt, e.getID(),
                                                    returnValue)) {
                    break;
                }
            }
        }
    } finally {
        if (dispatcherDone && ctxt != 0) {
            unsafe.freeMemory(ctxt);
        }
    }
}
 
源代码16 项目: openjdk-jdk9   文件: WDropTargetContextPeer.java
@Override
protected void eventPosted(final SunDropTargetEvent e) {
    if (e.getID() != SunDropTargetEvent.MOUSE_DROPPED) {
        Runnable runnable = new Runnable() {
                @Override
                public void run() {
                    e.getDispatcher().unregisterAllEvents();
                }
            };
        // NOTE: this PeerEvent must be a NORM_PRIORITY event to be
        // dispatched after this SunDropTargetEvent, but before the next
        // one, so we should pass zero flags.
        PeerEvent peerEvent = new PeerEvent(e.getSource(), runnable, 0);
        SunToolkit.executeOnEventHandlerThread(peerEvent);
    }
}
 
源代码17 项目: jdk8u_jdk   文件: Container.java
private void trackMouseEnterExit(Component targetOver, MouseEvent e) {
    if (e instanceof SunDropTargetEvent) {
        trackDropTargetEnterExit(targetOver, e);
        return;
    }
    int id = e.getID();

    if ( id != MouseEvent.MOUSE_EXITED &&
         id != MouseEvent.MOUSE_DRAGGED &&
         id != LWD_MOUSE_DRAGGED_OVER &&
            !isMouseInNativeContainer) {
        // any event but an exit or drag means we're in the native container
        isMouseInNativeContainer = true;
        startListeningForOtherDrags();
    } else if (id == MouseEvent.MOUSE_EXITED) {
        isMouseInNativeContainer = false;
        stopListeningForOtherDrags();
    }
    Component tle = retargetMouseEnterExit(targetOver, e,
                                               targetLastEntered.get(),
                                               isMouseInNativeContainer);
    targetLastEntered = new WeakReference<>(tle);
}
 
源代码18 项目: Bytecoder   文件: Container.java
private void trackMouseEnterExit(Component targetOver, MouseEvent e) {
    if (e instanceof SunDropTargetEvent) {
        trackDropTargetEnterExit(targetOver, e);
        return;
    }
    int id = e.getID();

    if ( id != MouseEvent.MOUSE_EXITED &&
         id != MouseEvent.MOUSE_DRAGGED &&
         id != LWD_MOUSE_DRAGGED_OVER &&
            !isMouseInNativeContainer) {
        // any event but an exit or drag means we're in the native container
        isMouseInNativeContainer = true;
        startListeningForOtherDrags();
    } else if (id == MouseEvent.MOUSE_EXITED) {
        isMouseInNativeContainer = false;
        stopListeningForOtherDrags();
    }
    Component tle = retargetMouseEnterExit(targetOver, e,
                                               targetLastEntered.get(),
                                               isMouseInNativeContainer);
    targetLastEntered = new WeakReference<>(tle);
}
 
源代码19 项目: openjdk-jdk8u   文件: Container.java
private void trackMouseEnterExit(Component targetOver, MouseEvent e) {
    if (e instanceof SunDropTargetEvent) {
        trackDropTargetEnterExit(targetOver, e);
        return;
    }
    int id = e.getID();

    if ( id != MouseEvent.MOUSE_EXITED &&
         id != MouseEvent.MOUSE_DRAGGED &&
         id != LWD_MOUSE_DRAGGED_OVER &&
            !isMouseInNativeContainer) {
        // any event but an exit or drag means we're in the native container
        isMouseInNativeContainer = true;
        startListeningForOtherDrags();
    } else if (id == MouseEvent.MOUSE_EXITED) {
        isMouseInNativeContainer = false;
        stopListeningForOtherDrags();
    }
    Component tle = retargetMouseEnterExit(targetOver, e,
                                               targetLastEntered.get(),
                                               isMouseInNativeContainer);
    targetLastEntered = new WeakReference<>(tle);
}
 
源代码20 项目: openjdk-8   文件: EventQueue.java
private static int eventToCacheIndex(AWTEvent e) {
    switch(e.getID()) {
    case PaintEvent.PAINT:
        return PAINT;
    case PaintEvent.UPDATE:
        return UPDATE;
    case MouseEvent.MOUSE_MOVED:
        return MOVE;
    case MouseEvent.MOUSE_DRAGGED:
        // Return -1 for SunDropTargetEvent since they are usually synchronous
        // and we don't want to skip them by coalescing with MouseEvent or other drag events
        return e instanceof SunDropTargetEvent ? -1 : DRAG;
    default:
        return e instanceof PeerEvent ? PEER : -1;
    }
}
 
源代码21 项目: openjdk-jdk8u   文件: WDropTargetContextPeer.java
@Override
protected void eventPosted(final SunDropTargetEvent e) {
    if (e.getID() != SunDropTargetEvent.MOUSE_DROPPED) {
        Runnable runnable = new Runnable() {
                @Override
                public void run() {
                    e.getDispatcher().unregisterAllEvents();
                }
            };
        // NOTE: this PeerEvent must be a NORM_PRIORITY event to be
        // dispatched after this SunDropTargetEvent, but before the next
        // one, so we should pass zero flags.
        PeerEvent peerEvent = new PeerEvent(e.getSource(), runnable, 0);
        SunToolkit.executeOnEventHandlerThread(peerEvent);
    }
}
 
源代码22 项目: openjdk-8   文件: XDropTargetContextPeer.java
protected void eventProcessed(SunDropTargetEvent e, int returnValue,
                              boolean dispatcherDone) {
    /* The native context is the pointer to the XClientMessageEvent
       structure. */
    long ctxt = getNativeDragContext();
    /* If the event was not consumed, send a response to the source. */
    try {
        if (ctxt != 0 && !e.isConsumed()) {
            Iterator dropTargetProtocols =
                XDragAndDropProtocols.getDropTargetProtocols();

            while (dropTargetProtocols.hasNext()) {
                XDropTargetProtocol dropTargetProtocol =
                    (XDropTargetProtocol)dropTargetProtocols.next();
                if (dropTargetProtocol.sendResponse(ctxt, e.getID(),
                                                    returnValue)) {
                    break;
                }
            }
        }
    } finally {
        if (dispatcherDone && ctxt != 0) {
            unsafe.freeMemory(ctxt);
        }
    }
}
 
源代码23 项目: jdk8u-dev-jdk   文件: CDropTargetContextPeer.java
@Override
protected void processMotionMessage(SunDropTargetEvent event, boolean operationChanged) {
    boolean eventInsideTarget = isEventInsideTarget(event);
    if (event.getComponent().getDropTarget() == insideTarget) {
        if (!eventInsideTarget) {
            processExitMessage(event);
            return;
        }
    } else {
        if (eventInsideTarget) {
            processEnterMessage(event);
        } else {
            return;
        }
    }
    super.processMotionMessage(event, operationChanged);
}
 
源代码24 项目: openjdk-jdk8u-backup   文件: Container.java
private void trackMouseEnterExit(Component targetOver, MouseEvent e) {
    if (e instanceof SunDropTargetEvent) {
        trackDropTargetEnterExit(targetOver, e);
        return;
    }
    int id = e.getID();

    if ( id != MouseEvent.MOUSE_EXITED &&
         id != MouseEvent.MOUSE_DRAGGED &&
         id != LWD_MOUSE_DRAGGED_OVER &&
            !isMouseInNativeContainer) {
        // any event but an exit or drag means we're in the native container
        isMouseInNativeContainer = true;
        startListeningForOtherDrags();
    } else if (id == MouseEvent.MOUSE_EXITED) {
        isMouseInNativeContainer = false;
        stopListeningForOtherDrags();
    }
    Component tle = retargetMouseEnterExit(targetOver, e,
                                               targetLastEntered.get(),
                                               isMouseInNativeContainer);
    targetLastEntered = new WeakReference<>(tle);
}
 
源代码25 项目: jdk8u-dev-jdk   文件: Container.java
/**
 * Dispatches an event to a sub-component if necessary, and
 * returns whether or not the event was forwarded to a
 * sub-component.
 *
 * @param e the event
 */
boolean dispatchEvent(AWTEvent e) {
    boolean ret = false;

    /*
     * Fix for BugTraq Id 4389284.
     * Dispatch SunDropTargetEvents regardless of eventMask value.
     * Do not update cursor on dispatching SunDropTargetEvents.
     */
    if (e instanceof SunDropTargetEvent) {

        SunDropTargetEvent sdde = (SunDropTargetEvent) e;
        ret = processDropTargetEvent(sdde);

    } else {
        if (e instanceof MouseEvent && (eventMask & MOUSE_MASK) != 0) {
            MouseEvent me = (MouseEvent) e;
            ret = processMouseEvent(me);
        }

        if (e.getID() == MouseEvent.MOUSE_MOVED) {
            nativeContainer.updateCursorImmediately();
        }
    }

    return ret;
}
 
源代码26 项目: dragonwell8_jdk   文件: CDropTargetContextPeer.java
/**
 * Could be called when DnD enters a heavyweight or synthesized in processMotionMessage
 */
@Override
protected void processEnterMessage(SunDropTargetEvent event) {
    Component c = event.getComponent();
    DropTarget dt = event.getComponent().getDropTarget();
    if (isEventInsideTarget(event)
            && dt != insideTarget
            && c.isShowing()
            && dt != null
            && dt.isActive()) {
        insideTarget = dt;
        super.processEnterMessage(event);
    }
}
 
源代码27 项目: openjdk-8-source   文件: WDropTargetContextPeer.java
protected void eventPosted(final SunDropTargetEvent e) {
    if (e.getID() != SunDropTargetEvent.MOUSE_DROPPED) {
        Runnable runnable = new Runnable() {
                public void run() {
                    e.getDispatcher().unregisterAllEvents();
                }
            };
        // NOTE: this PeerEvent must be a NORM_PRIORITY event to be
        // dispatched after this SunDropTargetEvent, but before the next
        // one, so we should pass zero flags.
        PeerEvent peerEvent = new PeerEvent(e.getSource(), runnable, 0);
        SunToolkit.executeOnEventHandlerThread(peerEvent);
    }
}
 
源代码28 项目: jdk8u_jdk   文件: CDropTargetContextPeer.java
/**
 * Could be called when DnD exits a heavyweight or synthesized in processMotionMessage
 */
@Override
protected void processExitMessage(SunDropTargetEvent event) {
    if (event.getComponent().getDropTarget() == insideTarget) {
        insideTarget = null;
        super.processExitMessage(event);
    }
}
 
源代码29 项目: openjdk-8   文件: XDropTargetContextPeer.java
private boolean processSunDropTargetEvent(SunDropTargetEvent event) {
    Object source = event.getSource();

    if (source instanceof Component) {
        ComponentPeer peer = ((Component)source).getPeer();
        if (peer instanceof XEmbedCanvasPeer) {
            XEmbedCanvasPeer xEmbedCanvasPeer = (XEmbedCanvasPeer)peer;
            /* The native context is the pointer to the XClientMessageEvent
               structure. */
            long ctxt = getNativeDragContext();

            if (logger.isLoggable(PlatformLogger.Level.FINER)) {
                logger.finer("        processing " + event + " ctxt=" + ctxt +
                             " consumed=" + event.isConsumed());
            }
            /* If the event is not consumed, pass it to the
               XEmbedCanvasPeer for processing. */
            if (!event.isConsumed()) {
                // NOTE: ctxt can be zero at this point.
                if (xEmbedCanvasPeer.processXEmbedDnDEvent(ctxt,
                                                           event.getID())) {
                    event.consume();
                    return true;
                }
            }
        }
    }

    return false;
}
 
源代码30 项目: dragonwell8_jdk   文件: XDropTargetContextPeer.java
private boolean processSunDropTargetEvent(SunDropTargetEvent event) {
    Object source = event.getSource();

    if (source instanceof Component) {
        ComponentPeer peer = ((Component)source).getPeer();
        if (peer instanceof XEmbedCanvasPeer) {
            XEmbedCanvasPeer xEmbedCanvasPeer = (XEmbedCanvasPeer)peer;
            /* The native context is the pointer to the XClientMessageEvent
               structure. */
            long ctxt = getNativeDragContext();

            if (logger.isLoggable(PlatformLogger.Level.FINER)) {
                logger.finer("        processing " + event + " ctxt=" + ctxt +
                             " consumed=" + event.isConsumed());
            }
            /* If the event is not consumed, pass it to the
               XEmbedCanvasPeer for processing. */
            if (!event.isConsumed()) {
                // NOTE: ctxt can be zero at this point.
                if (xEmbedCanvasPeer.processXEmbedDnDEvent(ctxt,
                                                           event.getID())) {
                    event.consume();
                    return true;
                }
            }
        }
    }

    return false;
}
 
 类所在包
 类方法
 同包方法