org.apache.batik.dom.events
Class EventSupport

java.lang.Object
  extended by org.apache.batik.dom.events.EventSupport
Direct Known Subclasses:
XBLEventSupport

public class EventSupport
extends Object

The class allows registration and removal of EventListeners on an NodeEventTarget and dispatch of events to that NodeEventTarget.

See Also:
NodeEventTarget

Field Summary
protected  HashTable bubblingListeners
          The bubbling listeners table.
protected  HashTable capturingListeners
          The capturing listeners table.
protected  AbstractNode node
          The node for which events are being handled.
 
Constructor Summary
EventSupport(AbstractNode n)
          Creates a new EventSupport object.
 
Method Summary
 void addEventListener(String type, EventListener listener, boolean useCapture)
          This method allows the registration of event listeners on the event target.
 void addEventListenerNS(String namespaceURI, String type, EventListener listener, boolean useCapture, Object group)
          Registers an event listener for the given namespaced event type in the specified group.
protected  EventException createEventException(short code, String key, Object[] args)
          Creates an EventException.
 boolean dispatchEvent(NodeEventTarget target, Event evt)
          This method allows the dispatch of events into the implementations event model.
protected  void fireEventListeners(NodeEventTarget node, AbstractEvent e, boolean useCapture, HashSet stoppedGroups, HashSet toBeStoppedGroups)
          Fires the registered listeners on the given event target.
protected  void fireEventListeners(NodeEventTarget node, AbstractEvent e, EventListenerList.Entry[] listeners, HashSet stoppedGroups, HashSet toBeStoppedGroups)
          Fires the given listeners on the given event target.
protected  NodeEventTarget[] getAncestors(NodeEventTarget node)
          Returns all ancestors of the specified node.
 EventListenerList getEventListeners(String type, boolean useCapture)
          Returns a list event listeners depending on the specified event type and phase.
static Event getUltimateOriginalEvent(Event evt)
          Returns the ultimate original event for the given event.
 boolean hasEventListenerNS(String namespaceURI, String type)
          Returns whether this node target has an event listener for the given event namespace URI and type.
 void moveEventListeners(EventSupport other)
          Moves all of the event listeners from this EventSupport object to the given EventSupport object.
protected  void preventDefault(AbstractEvent e, boolean b)
          Calls AbstractEvent.preventDefault(boolean).
 void removeEventListener(String type, EventListener listener, boolean useCapture)
          This method allows the removal of event listeners from the event target.
 void removeEventListenerNS(String namespaceURI, String type, EventListener listener, boolean useCapture)
          Deregisters an event listener.
protected  void runDefaultActions(AbstractEvent e)
          Runs all of the registered default actions for the given event object.
protected  void setCurrentTarget(AbstractEvent e, NodeEventTarget target)
          Calls AbstractEvent.setCurrentTarget(org.w3c.dom.events.EventTarget).
protected  void setEventPhase(AbstractEvent e, short phase)
          Calls AbstractEvent.setEventPhase(short).
protected  void setTarget(AbstractEvent e, NodeEventTarget target)
          Calls AbstractEvent.setTarget(org.w3c.dom.events.EventTarget).
protected  void stopImmediatePropagation(AbstractEvent e, boolean b)
          Calls AbstractEvent.stopImmediatePropagation(boolean).
protected  void stopPropagation(AbstractEvent e, boolean b)
          Calls AbstractEvent.stopPropagation(boolean).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

capturingListeners

protected HashTable capturingListeners
The capturing listeners table.


bubblingListeners

protected HashTable bubblingListeners
The bubbling listeners table.


node

protected AbstractNode node
The node for which events are being handled.

Constructor Detail

EventSupport

public EventSupport(AbstractNode n)
Creates a new EventSupport object.

Parameters:
n - the node for which events are being handled
Method Detail

addEventListener

public void addEventListener(String type,
                             EventListener listener,
                             boolean useCapture)
This method allows the registration of event listeners on the event target. If an EventListener is added to an EventTarget which is currently processing an event the new listener will not be triggered by the current event.
If multiple identical EventListeners are registered on the same EventTarget with the same parameters the duplicate instances are discarded. They do not cause the EventListener to be called twice and since they are discarded they do not need to be removed with the removeEventListener method.

Parameters:
type - The event type for which the user is registering
listener - The listener parameter takes an interface implemented by the user which contains the methods to be called when the event occurs.
useCapture - If true, useCapture indicates that the user wishes to initiate capture. After initiating capture, all events of the specified type will be dispatched to the registered EventListener before being dispatched to any EventTargets beneath them in the tree. Events which are bubbling upward through the tree will not trigger an EventListener designated to use capture.

addEventListenerNS

public void addEventListenerNS(String namespaceURI,
                               String type,
                               EventListener listener,
                               boolean useCapture,
                               Object group)
Registers an event listener for the given namespaced event type in the specified group.


removeEventListener

public void removeEventListener(String type,
                                EventListener listener,
                                boolean useCapture)
This method allows the removal of event listeners from the event target. If an EventListener is removed from an EventTarget while it is processing an event, it will complete its current actions but will not be triggered again during any later stages of event flow.
If an EventListener is removed from an EventTarget which is currently processing an event the removed listener will still be triggered by the current event.
Calling removeEventListener with arguments which do not identify any currently registered EventListener on the EventTarget has no effect.

Parameters:
type - Specifies the event type of the EventListener being removed.
listener - The EventListener parameter indicates the EventListener to be removed.
useCapture - Specifies whether the EventListener being removed was registered as a capturing listener or not. If a listener was registered twice, one with capture and one without, each must be removed separately. Removal of a capturing listener does not affect a non-capturing version of the same listener, and vice versa.

removeEventListenerNS

public void removeEventListenerNS(String namespaceURI,
                                  String type,
                                  EventListener listener,
                                  boolean useCapture)
Deregisters an event listener.


moveEventListeners

public void moveEventListeners(EventSupport other)
Moves all of the event listeners from this EventSupport object to the given EventSupport object. Used by AbstractDocument.renameNode(Node,String,String).


dispatchEvent

public boolean dispatchEvent(NodeEventTarget target,
                             Event evt)
                      throws EventException
This method allows the dispatch of events into the implementations event model. Events dispatched in this manner will have the same capturing and bubbling behavior as events dispatched directly by the implementation. The target of the event is the EventTarget on which dispatchEvent is called.

Parameters:
target - the target node
evt - Specifies the event type, behavior, and contextual information to be used in processing the event.
Returns:
The return value of dispatchEvent indicates whether any of the listeners which handled the event called preventDefault. If preventDefault was called the value is false, else the value is true.
Throws:
EventException - UNSPECIFIED_EVENT_TYPE_ERR: Raised if the Event's type was not specified by initializing the event before dispatchEvent was called. Specification of the Event's type as null or an empty string will also trigger this exception.

runDefaultActions

protected void runDefaultActions(AbstractEvent e)
Runs all of the registered default actions for the given event object.


fireEventListeners

protected void fireEventListeners(NodeEventTarget node,
                                  AbstractEvent e,
                                  EventListenerList.Entry[] listeners,
                                  HashSet stoppedGroups,
                                  HashSet toBeStoppedGroups)
Fires the given listeners on the given event target.


fireEventListeners

protected void fireEventListeners(NodeEventTarget node,
                                  AbstractEvent e,
                                  boolean useCapture,
                                  HashSet stoppedGroups,
                                  HashSet toBeStoppedGroups)
Fires the registered listeners on the given event target.


getAncestors

protected NodeEventTarget[] getAncestors(NodeEventTarget node)
Returns all ancestors of the specified node.


hasEventListenerNS

public boolean hasEventListenerNS(String namespaceURI,
                                  String type)
Returns whether this node target has an event listener for the given event namespace URI and type.


getEventListeners

public EventListenerList getEventListeners(String type,
                                           boolean useCapture)
Returns a list event listeners depending on the specified event type and phase.

Parameters:
type - the event type
useCapture -

createEventException

protected EventException createEventException(short code,
                                              String key,
                                              Object[] args)
Creates an EventException. Overrides this method if you need to create your own RangeException subclass.

Parameters:
code - the exception code
key - the resource key
args - arguments to use when formatting the message

setTarget

protected void setTarget(AbstractEvent e,
                         NodeEventTarget target)
Calls AbstractEvent.setTarget(org.w3c.dom.events.EventTarget).


stopPropagation

protected void stopPropagation(AbstractEvent e,
                               boolean b)
Calls AbstractEvent.stopPropagation(boolean).


stopImmediatePropagation

protected void stopImmediatePropagation(AbstractEvent e,
                                        boolean b)
Calls AbstractEvent.stopImmediatePropagation(boolean).


preventDefault

protected void preventDefault(AbstractEvent e,
                              boolean b)
Calls AbstractEvent.preventDefault(boolean).


setCurrentTarget

protected void setCurrentTarget(AbstractEvent e,
                                NodeEventTarget target)
Calls AbstractEvent.setCurrentTarget(org.w3c.dom.events.EventTarget).


setEventPhase

protected void setEventPhase(AbstractEvent e,
                             short phase)
Calls AbstractEvent.setEventPhase(short).


getUltimateOriginalEvent

public static Event getUltimateOriginalEvent(Event evt)
Returns the ultimate original event for the given event.



Copyright © 2008 Apache Software Foundation. All Rights Reserved.