< prev index next >

src/java.xml/share/classes/com/sun/org/apache/xerces/internal/dom/DocumentImpl.java

Print this page


   1 /*
   2  * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
   3  * @LastModified: Oct 2017
   4  */
   5 /*
   6  * Licensed to the Apache Software Foundation (ASF) under one or more
   7  * contributor license agreements.  See the NOTICE file distributed with
   8  * this work for additional information regarding copyright ownership.
   9  * The ASF licenses this file to You under the Apache License, Version 2.0
  10  * (the "License"); you may not use this file except in compliance with
  11  * the License.  You may obtain a copy of the License at
  12  *
  13  *      http://www.apache.org/licenses/LICENSE-2.0
  14  *
  15  * Unless required by applicable law or agreed to in writing, software
  16  * distributed under the License is distributed on an "AS IS" BASIS,
  17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  18  * See the License for the specific language governing permissions and
  19  * limitations under the License.
  20  */
  21 
  22 package com.sun.org.apache.xerces.internal.dom;
  23 


 756                         }
 757                     }
 758                 }
 759             }
 760         }
 761 
 762 
 763         // Both AT_TARGET and BUBBLE use non-capturing listeners.
 764         if (lc.bubbles > 0) {
 765             // AT_TARGET PHASE: Event is dispatched to NON-CAPTURING listeners
 766             // on the target node. Note that capturing listeners on the target
 767             // node are _not_ invoked, even during the capture phase.
 768             evt.eventPhase = Event.AT_TARGET;
 769             evt.currentTarget = node;
 770             ArrayList<LEntry> nodeListeners = (ArrayList<LEntry>)getEventListeners(node);
 771             if (!evt.stopPropagation && nodeListeners != null) {
 772                 List<LEntry> nl = (ArrayList<LEntry>)nodeListeners.clone();
 773                 // call listeners in the order in which they got registered
 774                 int nlsize = nl.size();
 775                 for (int i = 0; i < nlsize; i++) {
 776                     LEntry le = (LEntry) nl.get(i);
 777                     if (!le.useCapture && le.type.equals(evt.type) &&
 778                         nodeListeners.contains(le)) {
 779                         try {
 780                             le.listener.handleEvent(evt);
 781                         }
 782                         catch (Exception e) {
 783                             // All exceptions are ignored.
 784                         }
 785                     }
 786                 }
 787             }
 788             // BUBBLING_PHASE: Ancestors are scanned, target to root, for
 789             // non-capturing listeners. If the event's preventBubbling flag
 790             // has been set before processing of a node commences, we
 791             // instead immediately advance to the default phase.
 792             // Note that not all events bubble.
 793             if (evt.bubbles) {
 794                 evt.eventPhase = Event.BUBBLING_PHASE;
 795                 int pvsize = pv.size();
 796                 for (int j = 0; j < pvsize; j++) {


   1 /*
   2  * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
   3  * @LastModified: Nov 2017
   4  */
   5 /*
   6  * Licensed to the Apache Software Foundation (ASF) under one or more
   7  * contributor license agreements.  See the NOTICE file distributed with
   8  * this work for additional information regarding copyright ownership.
   9  * The ASF licenses this file to You under the Apache License, Version 2.0
  10  * (the "License"); you may not use this file except in compliance with
  11  * the License.  You may obtain a copy of the License at
  12  *
  13  *      http://www.apache.org/licenses/LICENSE-2.0
  14  *
  15  * Unless required by applicable law or agreed to in writing, software
  16  * distributed under the License is distributed on an "AS IS" BASIS,
  17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  18  * See the License for the specific language governing permissions and
  19  * limitations under the License.
  20  */
  21 
  22 package com.sun.org.apache.xerces.internal.dom;
  23 


 756                         }
 757                     }
 758                 }
 759             }
 760         }
 761 
 762 
 763         // Both AT_TARGET and BUBBLE use non-capturing listeners.
 764         if (lc.bubbles > 0) {
 765             // AT_TARGET PHASE: Event is dispatched to NON-CAPTURING listeners
 766             // on the target node. Note that capturing listeners on the target
 767             // node are _not_ invoked, even during the capture phase.
 768             evt.eventPhase = Event.AT_TARGET;
 769             evt.currentTarget = node;
 770             ArrayList<LEntry> nodeListeners = (ArrayList<LEntry>)getEventListeners(node);
 771             if (!evt.stopPropagation && nodeListeners != null) {
 772                 List<LEntry> nl = (ArrayList<LEntry>)nodeListeners.clone();
 773                 // call listeners in the order in which they got registered
 774                 int nlsize = nl.size();
 775                 for (int i = 0; i < nlsize; i++) {
 776                     LEntry le = nl.get(i);
 777                     if (!le.useCapture && le.type.equals(evt.type) &&
 778                         nodeListeners.contains(le)) {
 779                         try {
 780                             le.listener.handleEvent(evt);
 781                         }
 782                         catch (Exception e) {
 783                             // All exceptions are ignored.
 784                         }
 785                     }
 786                 }
 787             }
 788             // BUBBLING_PHASE: Ancestors are scanned, target to root, for
 789             // non-capturing listeners. If the event's preventBubbling flag
 790             // has been set before processing of a node commences, we
 791             // instead immediately advance to the default phase.
 792             // Note that not all events bubble.
 793             if (evt.bubbles) {
 794                 evt.eventPhase = Event.BUBBLING_PHASE;
 795                 int pvsize = pv.size();
 796                 for (int j = 0; j < pvsize; j++) {


< prev index next >