类org.w3c.dom.events.EventListener源码实例Demo

下面列出了怎么用org.w3c.dom.events.EventListener的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: MyBox   文件: WebBrowserBoxController.java
protected void clickLink() {
        EventListener listener = new EventListener() {
            public void handleEvent(Event ev) {
//                    ev.;
            }
        };
        Document doc = webEngine.getDocument();
        Element el = doc.getElementById("exit-app");
        ((EventTarget) el).addEventListener("click", listener, false);

        NodeList links = doc.getElementsByTagName("a");
        for (int i = 0; i < links.getLength(); ++i) {
//            Node node = links.item(i);
//            String link = links.item(i).toString();
//
//            EventListener listener = new EventListener() {
//                public void handleEvent(Event ev) {
////                    ev.;
//                }
//            };

        }
    }
 
源代码2 项目: org.hl7.fhir.core   文件: XmlLocationAnnotator.java
public XmlLocationAnnotator(XMLReader xmlReader, Document dom) {
    super(xmlReader);

    // Add listener to DOM, so we know which node was added.
    EventListener modListener = new EventListener() {
        @Override
        public void handleEvent(Event e) {
            EventTarget target = ((MutationEvent) e).getTarget();
            elementStack.push((Element) target);
        }
    };
    ((EventTarget) dom).addEventListener("DOMNodeInserted", modListener, true);
}
 
源代码3 项目: org.hl7.fhir.core   文件: XmlLocationAnnotator.java
public XmlLocationAnnotator(XMLReader xmlReader, Document dom) {
    super(xmlReader);

    // Add listener to DOM, so we know which node was added.
    EventListener modListener = new EventListener() {
        @Override
        public void handleEvent(Event e) {
            EventTarget target = ((MutationEvent) e).getTarget();
            elementStack.push((Element) target);
        }
    };
    ((EventTarget) dom).addEventListener("DOMNodeInserted", modListener, true);
}
 
源代码4 项目: org.hl7.fhir.core   文件: XmlLocationAnnotator.java
public XmlLocationAnnotator(XMLReader xmlReader, Document dom) {
    super(xmlReader);

    // Add listener to DOM, so we know which node was added.
    EventListener modListener = new EventListener() {
        @Override
        public void handleEvent(Event e) {
            EventTarget target = ((MutationEvent) e).getTarget();
            elementStack.push((Element) target);
        }
    };
    ((EventTarget) dom).addEventListener("DOMNodeInserted", modListener, true);
}
 
源代码5 项目: org.hl7.fhir.core   文件: XmlLocationAnnotator.java
public XmlLocationAnnotator(XMLReader xmlReader, Document dom) {
    super(xmlReader);

    // Add listener to DOM, so we know which node was added.
    EventListener modListener = new EventListener() {
        @Override
        public void handleEvent(Event e) {
            EventTarget target = ((MutationEvent) e).getTarget();
            elementStack.push((Element) target);
        }
    };
    ((EventTarget) dom).addEventListener("DOMNodeInserted", modListener, true);
}
 
源代码6 项目: jdk1.8-source-analysis   文件: DocumentImpl.java
/** NON-DOM INTERNAL: Constructor for Listener list Entry
 * @param type Event name (NOT event group!) to listen for.
 * @param listener Who gets called when event is dispatched
 * @param useCaptue True iff listener is registered on
 *  capturing phase rather than at-target or bubbling
 */
LEntry(String type, EventListener listener, boolean useCapture)
{
    this.type = type;
    this.listener = listener;
    this.useCapture = useCapture;
}
 
源代码7 项目: jdk1.8-source-analysis   文件: DocumentImpl.java
/**
 * Introduced in DOM Level 2. <p> Register an event listener with this
 * Node. A listener may be independently registered as both Capturing and
 * Bubbling, but may only be registered once per role; redundant
 * registrations are ignored.
 * @param node node to add listener to
 * @param type Event name (NOT event group!) to listen for.
 * @param listener Who gets called when event is dispatched
 * @param useCapture True iff listener is registered on
 *  capturing phase rather than at-target or bubbling
 */
@Override
protected void addEventListener(NodeImpl node, String type,
                                EventListener listener, boolean useCapture)
{
    // We can't dispatch to blank type-name, and of course we need
    // a listener to dispatch to
    if (type == null || type.equals("") || listener == null)
        return;

    // Each listener may be registered only once per type per phase.
    // Simplest way to code that is to zap the previous entry, if any.
    removeEventListener(node, type, listener, useCapture);

    List<LEntry> nodeListeners = getEventListeners(node);
    if(nodeListeners == null) {
        nodeListeners = new ArrayList<>();
        setEventListeners(node, nodeListeners);
    }
    nodeListeners.add(new LEntry(type, listener, useCapture));

    // Record active listener
    LCount lc = LCount.lookup(type);
    if (useCapture) {
        ++lc.captures;
        ++lc.total;
    }
    else {
        ++lc.bubbles;
        ++lc.total;
    }

}
 
源代码8 项目: jdk1.8-source-analysis   文件: DocumentImpl.java
/**
 * Introduced in DOM Level 2. <p> Deregister an event listener previously
 * registered with this Node.  A listener must be independently removed
 * from the Capturing and Bubbling roles. Redundant removals (of listeners
 * not currently registered for this role) are ignored.
 * @param node node to remove listener from
 * @param type Event name (NOT event group!) to listen for.
 * @param listener Who gets called when event is dispatched
 * @param useCapture True iff listener is registered on
 *  capturing phase rather than at-target or bubbling
 */
@Override
protected void removeEventListener(NodeImpl node, String type,
                                   EventListener listener,
                                   boolean useCapture)
{
    // If this couldn't be a valid listener registration, ignore request
    if (type == null || type.equals("") || listener == null)
        return;
    List<LEntry> nodeListeners = getEventListeners(node);
    if (nodeListeners == null)
        return;

    // Note that addListener has previously ensured that
    // each listener may be registered only once per type per phase.
    // count-down is OK for deletions!
    for (int i = nodeListeners.size() - 1; i >= 0; --i) {
        LEntry le = nodeListeners.get(i);
        if (le.useCapture == useCapture && le.listener == listener &&
            le.type.equals(type)) {
            nodeListeners.remove(i);
            // Storage management: Discard empty listener lists
            if (nodeListeners.isEmpty())
                setEventListeners(node, null);

            // Remove active listener
            LCount lc = LCount.lookup(type);
            if (useCapture) {
                --lc.captures;
                --lc.total;
            }
            else {
                --lc.bubbles;
                --lc.total;
            }

            break;  // Found it; no need to loop farther.
        }
    }
}
 
源代码9 项目: TencentKona-8   文件: DocumentImpl.java
/** NON-DOM INTERNAL: Constructor for Listener list Entry
 * @param type Event name (NOT event group!) to listen for.
 * @param listener Who gets called when event is dispatched
 * @param useCaptue True iff listener is registered on
 *  capturing phase rather than at-target or bubbling
 */
LEntry(String type, EventListener listener, boolean useCapture)
{
    this.type = type;
    this.listener = listener;
    this.useCapture = useCapture;
}
 
源代码10 项目: TencentKona-8   文件: DocumentImpl.java
/**
 * Introduced in DOM Level 2. <p> Register an event listener with this
 * Node. A listener may be independently registered as both Capturing and
 * Bubbling, but may only be registered once per role; redundant
 * registrations are ignored.
 * @param node node to add listener to
 * @param type Event name (NOT event group!) to listen for.
 * @param listener Who gets called when event is dispatched
 * @param useCapture True iff listener is registered on
 *  capturing phase rather than at-target or bubbling
 */
@Override
protected void addEventListener(NodeImpl node, String type,
                                EventListener listener, boolean useCapture)
{
    // We can't dispatch to blank type-name, and of course we need
    // a listener to dispatch to
    if (type == null || type.equals("") || listener == null)
        return;

    // Each listener may be registered only once per type per phase.
    // Simplest way to code that is to zap the previous entry, if any.
    removeEventListener(node, type, listener, useCapture);

    List<LEntry> nodeListeners = getEventListeners(node);
    if(nodeListeners == null) {
        nodeListeners = new ArrayList<>();
        setEventListeners(node, nodeListeners);
    }
    nodeListeners.add(new LEntry(type, listener, useCapture));

    // Record active listener
    LCount lc = LCount.lookup(type);
    if (useCapture) {
        ++lc.captures;
        ++lc.total;
    }
    else {
        ++lc.bubbles;
        ++lc.total;
    }

}
 
源代码11 项目: TencentKona-8   文件: DocumentImpl.java
/**
 * Introduced in DOM Level 2. <p> Deregister an event listener previously
 * registered with this Node.  A listener must be independently removed
 * from the Capturing and Bubbling roles. Redundant removals (of listeners
 * not currently registered for this role) are ignored.
 * @param node node to remove listener from
 * @param type Event name (NOT event group!) to listen for.
 * @param listener Who gets called when event is dispatched
 * @param useCapture True iff listener is registered on
 *  capturing phase rather than at-target or bubbling
 */
@Override
protected void removeEventListener(NodeImpl node, String type,
                                   EventListener listener,
                                   boolean useCapture)
{
    // If this couldn't be a valid listener registration, ignore request
    if (type == null || type.equals("") || listener == null)
        return;
    List<LEntry> nodeListeners = getEventListeners(node);
    if (nodeListeners == null)
        return;

    // Note that addListener has previously ensured that
    // each listener may be registered only once per type per phase.
    // count-down is OK for deletions!
    for (int i = nodeListeners.size() - 1; i >= 0; --i) {
        LEntry le = nodeListeners.get(i);
        if (le.useCapture == useCapture && le.listener == listener &&
            le.type.equals(type)) {
            nodeListeners.remove(i);
            // Storage management: Discard empty listener lists
            if (nodeListeners.isEmpty())
                setEventListeners(node, null);

            // Remove active listener
            LCount lc = LCount.lookup(type);
            if (useCapture) {
                --lc.captures;
                --lc.total;
            }
            else {
                --lc.bubbles;
                --lc.total;
            }

            break;  // Found it; no need to loop farther.
        }
    }
}
 
源代码12 项目: jdk8u60   文件: DocumentImpl.java
/** NON-DOM INTERNAL: Constructor for Listener list Entry
 * @param type Event name (NOT event group!) to listen for.
 * @param listener Who gets called when event is dispatched
 * @param useCaptue True iff listener is registered on
 *  capturing phase rather than at-target or bubbling
 */
LEntry(String type, EventListener listener, boolean useCapture)
{
    this.type = type;
    this.listener = listener;
    this.useCapture = useCapture;
}
 
源代码13 项目: jdk8u60   文件: DocumentImpl.java
/**
 * Introduced in DOM Level 2. <p> Deregister an event listener previously
 * registered with this Node.  A listener must be independently removed
 * from the Capturing and Bubbling roles. Redundant removals (of listeners
 * not currently registered for this role) are ignored.
 * @param node node to remove listener from
 * @param type Event name (NOT event group!) to listen for.
 * @param listener Who gets called when event is dispatched
 * @param useCapture True iff listener is registered on
 *  capturing phase rather than at-target or bubbling
 */
protected void removeEventListener(NodeImpl node, String type,
                                   EventListener listener,
                                   boolean useCapture)
{
    // If this couldn't be a valid listener registration, ignore request
    if (type == null || type.equals("") || listener == null)
        return;
    Vector nodeListeners = getEventListeners(node);
    if (nodeListeners == null)
        return;

    // Note that addListener has previously ensured that
    // each listener may be registered only once per type per phase.
    // count-down is OK for deletions!
    for (int i = nodeListeners.size() - 1; i >= 0; --i) {
        LEntry le = (LEntry) nodeListeners.elementAt(i);
        if (le.useCapture == useCapture && le.listener == listener &&
            le.type.equals(type)) {
            nodeListeners.removeElementAt(i);
            // Storage management: Discard empty listener lists
            if (nodeListeners.size() == 0)
                setEventListeners(node, null);

            // Remove active listener
            LCount lc = LCount.lookup(type);
            if (useCapture) {
                --lc.captures;
                --lc.total;
            }
            else {
                --lc.bubbles;
                --lc.total;
            }

            break;  // Found it; no need to loop farther.
        }
    }
}
 
源代码14 项目: JDKSourceCode1.8   文件: DocumentImpl.java
/** NON-DOM INTERNAL: Constructor for Listener list Entry
 * @param type Event name (NOT event group!) to listen for.
 * @param listener Who gets called when event is dispatched
 * @param useCaptue True iff listener is registered on
 *  capturing phase rather than at-target or bubbling
 */
LEntry(String type, EventListener listener, boolean useCapture)
{
    this.type = type;
    this.listener = listener;
    this.useCapture = useCapture;
}
 
源代码15 项目: JDKSourceCode1.8   文件: DocumentImpl.java
/**
 * Introduced in DOM Level 2. <p> Register an event listener with this
 * Node. A listener may be independently registered as both Capturing and
 * Bubbling, but may only be registered once per role; redundant
 * registrations are ignored.
 * @param node node to add listener to
 * @param type Event name (NOT event group!) to listen for.
 * @param listener Who gets called when event is dispatched
 * @param useCapture True iff listener is registered on
 *  capturing phase rather than at-target or bubbling
 */
@Override
protected void addEventListener(NodeImpl node, String type,
                                EventListener listener, boolean useCapture)
{
    // We can't dispatch to blank type-name, and of course we need
    // a listener to dispatch to
    if (type == null || type.equals("") || listener == null)
        return;

    // Each listener may be registered only once per type per phase.
    // Simplest way to code that is to zap the previous entry, if any.
    removeEventListener(node, type, listener, useCapture);

    List<LEntry> nodeListeners = getEventListeners(node);
    if(nodeListeners == null) {
        nodeListeners = new ArrayList<>();
        setEventListeners(node, nodeListeners);
    }
    nodeListeners.add(new LEntry(type, listener, useCapture));

    // Record active listener
    LCount lc = LCount.lookup(type);
    if (useCapture) {
        ++lc.captures;
        ++lc.total;
    }
    else {
        ++lc.bubbles;
        ++lc.total;
    }

}
 
源代码16 项目: JDKSourceCode1.8   文件: DocumentImpl.java
/**
 * Introduced in DOM Level 2. <p> Deregister an event listener previously
 * registered with this Node.  A listener must be independently removed
 * from the Capturing and Bubbling roles. Redundant removals (of listeners
 * not currently registered for this role) are ignored.
 * @param node node to remove listener from
 * @param type Event name (NOT event group!) to listen for.
 * @param listener Who gets called when event is dispatched
 * @param useCapture True iff listener is registered on
 *  capturing phase rather than at-target or bubbling
 */
@Override
protected void removeEventListener(NodeImpl node, String type,
                                   EventListener listener,
                                   boolean useCapture)
{
    // If this couldn't be a valid listener registration, ignore request
    if (type == null || type.equals("") || listener == null)
        return;
    List<LEntry> nodeListeners = getEventListeners(node);
    if (nodeListeners == null)
        return;

    // Note that addListener has previously ensured that
    // each listener may be registered only once per type per phase.
    // count-down is OK for deletions!
    for (int i = nodeListeners.size() - 1; i >= 0; --i) {
        LEntry le = nodeListeners.get(i);
        if (le.useCapture == useCapture && le.listener == listener &&
            le.type.equals(type)) {
            nodeListeners.remove(i);
            // Storage management: Discard empty listener lists
            if (nodeListeners.isEmpty())
                setEventListeners(node, null);

            // Remove active listener
            LCount lc = LCount.lookup(type);
            if (useCapture) {
                --lc.captures;
                --lc.total;
            }
            else {
                --lc.bubbles;
                --lc.total;
            }

            break;  // Found it; no need to loop farther.
        }
    }
}
 
源代码17 项目: openjdk-jdk8u   文件: DocumentImpl.java
/** NON-DOM INTERNAL: Constructor for Listener list Entry
 * @param type Event name (NOT event group!) to listen for.
 * @param listener Who gets called when event is dispatched
 * @param useCaptue True iff listener is registered on
 *  capturing phase rather than at-target or bubbling
 */
LEntry(String type, EventListener listener, boolean useCapture)
{
    this.type = type;
    this.listener = listener;
    this.useCapture = useCapture;
}
 
源代码18 项目: openjdk-jdk8u   文件: DocumentImpl.java
/**
 * Introduced in DOM Level 2. <p> Register an event listener with this
 * Node. A listener may be independently registered as both Capturing and
 * Bubbling, but may only be registered once per role; redundant
 * registrations are ignored.
 * @param node node to add listener to
 * @param type Event name (NOT event group!) to listen for.
 * @param listener Who gets called when event is dispatched
 * @param useCapture True iff listener is registered on
 *  capturing phase rather than at-target or bubbling
 */
@Override
protected void addEventListener(NodeImpl node, String type,
                                EventListener listener, boolean useCapture)
{
    // We can't dispatch to blank type-name, and of course we need
    // a listener to dispatch to
    if (type == null || type.equals("") || listener == null)
        return;

    // Each listener may be registered only once per type per phase.
    // Simplest way to code that is to zap the previous entry, if any.
    removeEventListener(node, type, listener, useCapture);

    List<LEntry> nodeListeners = getEventListeners(node);
    if(nodeListeners == null) {
        nodeListeners = new ArrayList<>();
        setEventListeners(node, nodeListeners);
    }
    nodeListeners.add(new LEntry(type, listener, useCapture));

    // Record active listener
    LCount lc = LCount.lookup(type);
    if (useCapture) {
        ++lc.captures;
        ++lc.total;
    }
    else {
        ++lc.bubbles;
        ++lc.total;
    }

}
 
源代码19 项目: openjdk-jdk8u   文件: DocumentImpl.java
/**
 * Introduced in DOM Level 2. <p> Deregister an event listener previously
 * registered with this Node.  A listener must be independently removed
 * from the Capturing and Bubbling roles. Redundant removals (of listeners
 * not currently registered for this role) are ignored.
 * @param node node to remove listener from
 * @param type Event name (NOT event group!) to listen for.
 * @param listener Who gets called when event is dispatched
 * @param useCapture True iff listener is registered on
 *  capturing phase rather than at-target or bubbling
 */
@Override
protected void removeEventListener(NodeImpl node, String type,
                                   EventListener listener,
                                   boolean useCapture)
{
    // If this couldn't be a valid listener registration, ignore request
    if (type == null || type.equals("") || listener == null)
        return;
    List<LEntry> nodeListeners = getEventListeners(node);
    if (nodeListeners == null)
        return;

    // Note that addListener has previously ensured that
    // each listener may be registered only once per type per phase.
    // count-down is OK for deletions!
    for (int i = nodeListeners.size() - 1; i >= 0; --i) {
        LEntry le = nodeListeners.get(i);
        if (le.useCapture == useCapture && le.listener == listener &&
            le.type.equals(type)) {
            nodeListeners.remove(i);
            // Storage management: Discard empty listener lists
            if (nodeListeners.isEmpty())
                setEventListeners(node, null);

            // Remove active listener
            LCount lc = LCount.lookup(type);
            if (useCapture) {
                --lc.captures;
                --lc.total;
            }
            else {
                --lc.bubbles;
                --lc.total;
            }

            break;  // Found it; no need to loop farther.
        }
    }
}
 
源代码20 项目: openjdk-jdk8u-backup   文件: DocumentImpl.java
/** NON-DOM INTERNAL: Constructor for Listener list Entry
 * @param type Event name (NOT event group!) to listen for.
 * @param listener Who gets called when event is dispatched
 * @param useCaptue True iff listener is registered on
 *  capturing phase rather than at-target or bubbling
 */
LEntry(String type, EventListener listener, boolean useCapture)
{
    this.type = type;
    this.listener = listener;
    this.useCapture = useCapture;
}
 
源代码21 项目: openjdk-jdk8u-backup   文件: DocumentImpl.java
/**
 * Introduced in DOM Level 2. <p> Register an event listener with this
 * Node. A listener may be independently registered as both Capturing and
 * Bubbling, but may only be registered once per role; redundant
 * registrations are ignored.
 * @param node node to add listener to
 * @param type Event name (NOT event group!) to listen for.
 * @param listener Who gets called when event is dispatched
 * @param useCapture True iff listener is registered on
 *  capturing phase rather than at-target or bubbling
 */
@Override
protected void addEventListener(NodeImpl node, String type,
                                EventListener listener, boolean useCapture)
{
    // We can't dispatch to blank type-name, and of course we need
    // a listener to dispatch to
    if (type == null || type.equals("") || listener == null)
        return;

    // Each listener may be registered only once per type per phase.
    // Simplest way to code that is to zap the previous entry, if any.
    removeEventListener(node, type, listener, useCapture);

    List<LEntry> nodeListeners = getEventListeners(node);
    if(nodeListeners == null) {
        nodeListeners = new ArrayList<>();
        setEventListeners(node, nodeListeners);
    }
    nodeListeners.add(new LEntry(type, listener, useCapture));

    // Record active listener
    LCount lc = LCount.lookup(type);
    if (useCapture) {
        ++lc.captures;
        ++lc.total;
    }
    else {
        ++lc.bubbles;
        ++lc.total;
    }

}
 
源代码22 项目: openjdk-jdk8u-backup   文件: DocumentImpl.java
/**
 * Introduced in DOM Level 2. <p> Deregister an event listener previously
 * registered with this Node.  A listener must be independently removed
 * from the Capturing and Bubbling roles. Redundant removals (of listeners
 * not currently registered for this role) are ignored.
 * @param node node to remove listener from
 * @param type Event name (NOT event group!) to listen for.
 * @param listener Who gets called when event is dispatched
 * @param useCapture True iff listener is registered on
 *  capturing phase rather than at-target or bubbling
 */
@Override
protected void removeEventListener(NodeImpl node, String type,
                                   EventListener listener,
                                   boolean useCapture)
{
    // If this couldn't be a valid listener registration, ignore request
    if (type == null || type.equals("") || listener == null)
        return;
    List<LEntry> nodeListeners = getEventListeners(node);
    if (nodeListeners == null)
        return;

    // Note that addListener has previously ensured that
    // each listener may be registered only once per type per phase.
    // count-down is OK for deletions!
    for (int i = nodeListeners.size() - 1; i >= 0; --i) {
        LEntry le = nodeListeners.get(i);
        if (le.useCapture == useCapture && le.listener == listener &&
            le.type.equals(type)) {
            nodeListeners.remove(i);
            // Storage management: Discard empty listener lists
            if (nodeListeners.isEmpty())
                setEventListeners(node, null);

            // Remove active listener
            LCount lc = LCount.lookup(type);
            if (useCapture) {
                --lc.captures;
                --lc.total;
            }
            else {
                --lc.bubbles;
                --lc.total;
            }

            break;  // Found it; no need to loop farther.
        }
    }
}
 
源代码23 项目: Bytecoder   文件: DocumentImpl.java
/** NON-DOM INTERNAL: Constructor for Listener list Entry
 * @param type Event name (NOT event group!) to listen for.
 * @param listener Who gets called when event is dispatched
 * @param useCaptue True iff listener is registered on
 *  capturing phase rather than at-target or bubbling
 */
LEntry(String type, EventListener listener, boolean useCapture)
{
    this.type = type;
    this.listener = listener;
    this.useCapture = useCapture;
}
 
源代码24 项目: Bytecoder   文件: DocumentImpl.java
/**
 * Introduced in DOM Level 2. <p> Register an event listener with this
 * Node. A listener may be independently registered as both Capturing and
 * Bubbling, but may only be registered once per role; redundant
 * registrations are ignored.
 * @param node node to add listener to
 * @param type Event name (NOT event group!) to listen for.
 * @param listener Who gets called when event is dispatched
 * @param useCapture True iff listener is registered on
 *  capturing phase rather than at-target or bubbling
 */
@Override
protected void addEventListener(NodeImpl node, String type,
                                EventListener listener, boolean useCapture)
{
    // We can't dispatch to blank type-name, and of course we need
    // a listener to dispatch to
    if (type == null || type.equals("") || listener == null)
        return;

    // Each listener may be registered only once per type per phase.
    // Simplest way to code that is to zap the previous entry, if any.
    removeEventListener(node, type, listener, useCapture);

    List<LEntry> nodeListeners = getEventListeners(node);
    if(nodeListeners == null) {
        nodeListeners = new ArrayList<>();
        setEventListeners(node, nodeListeners);
    }
    nodeListeners.add(new LEntry(type, listener, useCapture));

    // Record active listener
    LCount lc = LCount.lookup(type);
    if (useCapture) {
        ++lc.captures;
        ++lc.total;
    }
    else {
        ++lc.bubbles;
        ++lc.total;
    }

}
 
源代码25 项目: Bytecoder   文件: DocumentImpl.java
/**
 * Introduced in DOM Level 2. <p> Deregister an event listener previously
 * registered with this Node.  A listener must be independently removed
 * from the Capturing and Bubbling roles. Redundant removals (of listeners
 * not currently registered for this role) are ignored.
 * @param node node to remove listener from
 * @param type Event name (NOT event group!) to listen for.
 * @param listener Who gets called when event is dispatched
 * @param useCapture True iff listener is registered on
 *  capturing phase rather than at-target or bubbling
 */
@Override
protected void removeEventListener(NodeImpl node, String type,
                                   EventListener listener,
                                   boolean useCapture)
{
    // If this couldn't be a valid listener registration, ignore request
    if (type == null || type.equals("") || listener == null)
        return;
    List<LEntry> nodeListeners = getEventListeners(node);
    if (nodeListeners == null)
        return;

    // Note that addListener has previously ensured that
    // each listener may be registered only once per type per phase.
    // count-down is OK for deletions!
    for (int i = nodeListeners.size() - 1; i >= 0; --i) {
        LEntry le = nodeListeners.get(i);
        if (le.useCapture == useCapture && le.listener == listener &&
            le.type.equals(type)) {
            nodeListeners.remove(i);
            // Storage management: Discard empty listener lists
            if (nodeListeners.isEmpty())
                setEventListeners(node, null);

            // Remove active listener
            LCount lc = LCount.lookup(type);
            if (useCapture) {
                --lc.captures;
                --lc.total;
            }
            else {
                --lc.bubbles;
                --lc.total;
            }

            break;  // Found it; no need to loop farther.
        }
    }
}
 
源代码26 项目: openjdk-jdk9   文件: DocumentImpl.java
/** NON-DOM INTERNAL: Constructor for Listener list Entry
 * @param type Event name (NOT event group!) to listen for.
 * @param listener Who gets called when event is dispatched
 * @param useCaptue True iff listener is registered on
 *  capturing phase rather than at-target or bubbling
 */
LEntry(String type, EventListener listener, boolean useCapture)
{
    this.type = type;
    this.listener = listener;
    this.useCapture = useCapture;
}
 
源代码27 项目: openjdk-jdk9   文件: DocumentImpl.java
/**
 * Introduced in DOM Level 2. <p> Register an event listener with this
 * Node. A listener may be independently registered as both Capturing and
 * Bubbling, but may only be registered once per role; redundant
 * registrations are ignored.
 * @param node node to add listener to
 * @param type Event name (NOT event group!) to listen for.
 * @param listener Who gets called when event is dispatched
 * @param useCapture True iff listener is registered on
 *  capturing phase rather than at-target or bubbling
 */
@Override
protected void addEventListener(NodeImpl node, String type,
                                EventListener listener, boolean useCapture)
{
    // We can't dispatch to blank type-name, and of course we need
    // a listener to dispatch to
    if (type == null || type.equals("") || listener == null)
        return;

    // Each listener may be registered only once per type per phase.
    // Simplest way to code that is to zap the previous entry, if any.
    removeEventListener(node, type, listener, useCapture);

    List<LEntry> nodeListeners = getEventListeners(node);
    if(nodeListeners == null) {
        nodeListeners = new ArrayList<>();
        setEventListeners(node, nodeListeners);
    }
    nodeListeners.add(new LEntry(type, listener, useCapture));

    // Record active listener
    LCount lc = LCount.lookup(type);
    if (useCapture) {
        ++lc.captures;
        ++lc.total;
    }
    else {
        ++lc.bubbles;
        ++lc.total;
    }

}
 
源代码28 项目: openjdk-jdk9   文件: DocumentImpl.java
/**
 * Introduced in DOM Level 2. <p> Deregister an event listener previously
 * registered with this Node.  A listener must be independently removed
 * from the Capturing and Bubbling roles. Redundant removals (of listeners
 * not currently registered for this role) are ignored.
 * @param node node to remove listener from
 * @param type Event name (NOT event group!) to listen for.
 * @param listener Who gets called when event is dispatched
 * @param useCapture True iff listener is registered on
 *  capturing phase rather than at-target or bubbling
 */
@Override
protected void removeEventListener(NodeImpl node, String type,
                                   EventListener listener,
                                   boolean useCapture)
{
    // If this couldn't be a valid listener registration, ignore request
    if (type == null || type.equals("") || listener == null)
        return;
    List<LEntry> nodeListeners = getEventListeners(node);
    if (nodeListeners == null)
        return;

    // Note that addListener has previously ensured that
    // each listener may be registered only once per type per phase.
    // count-down is OK for deletions!
    for (int i = nodeListeners.size() - 1; i >= 0; --i) {
        LEntry le = nodeListeners.get(i);
        if (le.useCapture == useCapture && le.listener == listener &&
            le.type.equals(type)) {
            nodeListeners.remove(i);
            // Storage management: Discard empty listener lists
            if (nodeListeners.isEmpty())
                setEventListeners(node, null);

            // Remove active listener
            LCount lc = LCount.lookup(type);
            if (useCapture) {
                --lc.captures;
                --lc.total;
            }
            else {
                --lc.bubbles;
                --lc.total;
            }

            break;  // Found it; no need to loop farther.
        }
    }
}
 
源代码29 项目: hottub   文件: DocumentImpl.java
/** NON-DOM INTERNAL: Constructor for Listener list Entry
 * @param type Event name (NOT event group!) to listen for.
 * @param listener Who gets called when event is dispatched
 * @param useCaptue True iff listener is registered on
 *  capturing phase rather than at-target or bubbling
 */
LEntry(String type, EventListener listener, boolean useCapture)
{
    this.type = type;
    this.listener = listener;
    this.useCapture = useCapture;
}
 
源代码30 项目: hottub   文件: DocumentImpl.java
/**
 * Introduced in DOM Level 2. <p> Register an event listener with this
 * Node. A listener may be independently registered as both Capturing and
 * Bubbling, but may only be registered once per role; redundant
 * registrations are ignored.
 * @param node node to add listener to
 * @param type Event name (NOT event group!) to listen for.
 * @param listener Who gets called when event is dispatched
 * @param useCapture True iff listener is registered on
 *  capturing phase rather than at-target or bubbling
 */
@Override
protected void addEventListener(NodeImpl node, String type,
                                EventListener listener, boolean useCapture)
{
    // We can't dispatch to blank type-name, and of course we need
    // a listener to dispatch to
    if (type == null || type.equals("") || listener == null)
        return;

    // Each listener may be registered only once per type per phase.
    // Simplest way to code that is to zap the previous entry, if any.
    removeEventListener(node, type, listener, useCapture);

    List<LEntry> nodeListeners = getEventListeners(node);
    if(nodeListeners == null) {
        nodeListeners = new ArrayList<>();
        setEventListeners(node, nodeListeners);
    }
    nodeListeners.add(new LEntry(type, listener, useCapture));

    // Record active listener
    LCount lc = LCount.lookup(type);
    if (useCapture) {
        ++lc.captures;
        ++lc.total;
    }
    else {
        ++lc.bubbles;
        ++lc.total;
    }

}
 
 类所在包
 同包方法