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++) {
|