summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 16ed349)
raw | patch | inline | side by side (parent: 16ed349)
author | ishmal <ishmal@users.sourceforge.net> | |
Sun, 16 Mar 2008 21:37:50 +0000 (21:37 +0000) | ||
committer | ishmal <ishmal@users.sourceforge.net> | |
Sun, 16 Mar 2008 21:37:50 +0000 (21:37 +0000) |
12 files changed:
diff --git a/src/bind/java/org/w3c/dom/events/CustomEvent.java b/src/bind/java/org/w3c/dom/events/CustomEvent.java
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.events;
+
+/**
+ * The <code>CustomEvent</code> interface gives access to the attributes
+ * <code>Event.currentTarget</code> and <code>Event.eventPhase</code>. It is
+ * intended to be used by the DOM Events implementation to access the
+ * underlying current target and event phase while dispatching a custom
+ * <code>Event</code> in the tree; it is also intended to be implemented,
+ * and <em>not used</em>, by DOM applications.
+ * <p> The methods contained in this interface are not intended to be used by
+ * a DOM application, especially during the dispatch on the
+ * <code>Event</code> object. Changing the current target or the current
+ * phase may result in unpredictable results of the event flow. The DOM
+ * Events implementation should ensure that both methods return the
+ * appropriate current target and phase before invoking each event listener
+ * on the current target to protect DOM applications from malicious event
+ * listeners.
+ * <p ><b>Note:</b> If this interface is supported by the event object,
+ * <code>Event.isCustom()</code> must return <code>true</code>.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/NOTE-DOM-Level-3-Events-20031107'>Document Object Model (DOM) Level 3 Events Specification</a>.
+ * @since DOM Level 3
+ */
+public interface CustomEvent extends Event {
+ /**
+ * The <code>setDispatchState</code> method is used by the DOM Events
+ * implementation to set the values of <code>Event.currentTarget</code>
+ * and <code>Event.eventPhase</code>. It also reset the states of
+ * <code>isPropagationStopped</code> and
+ * <code>isImmediatePropagationStopped</code>.
+ * @param target Specifies the new value for the
+ * <code>Event.currentTarget</code> attribute.
+ * @param phase Specifies the new value for the
+ * <code>Event.eventPhase</code> attribute.
+ */
+ public void setDispatchState(EventTarget target,
+ short phase);
+
+ /**
+ * This method will return <code>true</code> if the method
+ * <code>stopPropagation()</code> has been called for this event,
+ * <code>false</code> in any other cases.
+ * @return <code>true</code> if the event propagation has been stopped
+ * in the current group.
+ */
+ public boolean isPropagationStopped();
+
+ /**
+ * The <code>isImmediatePropagationStopped</code> method is used by the
+ * DOM Events implementation to know if the method
+ * <code>stopImmediatePropagation()</code> has been called for this
+ * event. It returns <code>true</code> if the method has been called,
+ * <code>false</code> otherwise.
+ * @return <code>true</code> if the event propagation has been stopped
+ * immediately in the current group.
+ */
+ public boolean isImmediatePropagationStopped();
+
+}
diff --git a/src/bind/java/org/w3c/dom/events/DocumentEvent.java b/src/bind/java/org/w3c/dom/events/DocumentEvent.java
--- /dev/null
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.events;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The <code>DocumentEvent</code> interface provides a mechanism by which the
+ * user can create an <code>Event</code> object of a type supported by the
+ * implementation. If the feature "Events" is supported by the
+ * <code>Document</code> object, the <code>DocumentEvent</code> interface
+ * must be implemented on the same object. If the feature "+Events" is
+ * supported by the <code>Document</code> object, an object that supports
+ * the <code>DocumentEvent</code> interface must be returned by invoking the
+ * method <code>Node.getFeature("+Events", "3.0")</code> on the
+ * <code>Document</code> object.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/NOTE-DOM-Level-3-Events-20031107'>Document Object Model (DOM) Level 3 Events Specification</a>.
+ * @since DOM Level 2
+ */
+public interface DocumentEvent {
+ /**
+ *
+ * @param eventType The <code>eventType</code> parameter specifies the
+ * name of the DOM Events interface to be supported by the created
+ * event object, e.g. <code>"Event"</code>, <code>"MouseEvent"</code>,
+ * <code>"MutationEvent"</code> and so on. If the <code>Event</code>
+ * is to be dispatched via the <code>EventTarget.dispatchEvent()</code>
+ * method the appropriate event init method must be called after
+ * creation in order to initialize the <code>Event</code>'s values.
+ * As an example, a user wishing to synthesize some kind of
+ * <code>UIEvent</code> would invoke
+ * <code>DocumentEvent.createEvent("UIEvent")</code>. The
+ * <code>UIEvent.initUIEventNS()</code> method could then be called on
+ * the newly created <code>UIEvent</code> object to set the specific
+ * type of user interface event to be dispatched,
+ * <code>{"http://www.w3.org/2001/xml-events", "DOMActivate"}</code>
+ * for example, and set its context information, e.g.
+ * <code>UIEvent.detail</code> in this example. The
+ * <code>createEvent</code> method is used in creating
+ * <code>Event</code>s when it is either inconvenient or unnecessary
+ * for the user to create an <code>Event</code> themselves. In cases
+ * where the implementation provided <code>Event</code> is
+ * insufficient, users may supply their own <code>Event</code>
+ * implementations for use with the
+ * <code>EventTarget.dispatchEvent()</code> method. However, the DOM
+ * implementation needs access to the attributes
+ * <code>Event.currentTarget</code> and <code>Event.eventPhase</code>
+ * to appropriately propagate the event in the DOM tree. Therefore
+ * users' <code>Event</code> implementations might need to support the
+ * <code>CustomEvent</code> interface for that effect.
+ * <p ><b>Note:</b> For backward compatibility reason, "UIEvents",
+ * "MouseEvents", "MutationEvents", and "HTMLEvents" feature names are
+ * valid values for the parameter <code>eventType</code> and represent
+ * respectively the interfaces "UIEvent", "MouseEvent",
+ * "MutationEvent", and "Event".
+ * @return The newly created event object.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: Raised if the implementation does not support the
+ * <code>Event</code> interface requested.
+ */
+ public Event createEvent(String eventType)
+ throws DOMException;
+
+ /**
+ * Test if the implementation can generate events of a specified type.
+ * @param namespaceURI Specifies the <code>Event.namespaceURI</code> of
+ * the event.
+ * @param type Specifies the <code>Event.type</code> of the event.
+ * @return <code>true</code> if the implementation can generate and
+ * dispatch this event type, <code>false</code> otherwise.
+ * @since DOM Level 3
+ */
+ public boolean canDispatch(String namespaceURI,
+ String type);
+
+}
diff --git a/src/bind/java/org/w3c/dom/events/Event.java b/src/bind/java/org/w3c/dom/events/Event.java
--- /dev/null
@@ -0,0 +1,209 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.events;
+
+/**
+ * The <code>Event</code> interface is used to provide contextual information
+ * about an event to the listener processing the event. An object which
+ * implements the <code>Event</code> interface is passed as the parameter to
+ * an <code>EventListener</code>. More specific context information is
+ * passed to event listeners by deriving additional interfaces from
+ * <code>Event</code> which contain information directly relating to the
+ * type of event they represent. These derived interfaces are also
+ * implemented by the object passed to the event listener.
+ * <p> To create an instance of the <code>Event</code> interface, use the
+ * <code>DocumentEvent.createEvent("Event")</code> method call.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/NOTE-DOM-Level-3-Events-20031107'>Document Object Model (DOM) Level 3 Events Specification</a>.
+ * @since DOM Level 2
+ */
+public interface Event {
+ // PhaseType
+ /**
+ * The current event phase is the capture phase.
+ */
+ public static final short CAPTURING_PHASE = 1;
+ /**
+ * The current event is in the target phase, i.e. it is being evaluated
+ * at the event target.
+ */
+ public static final short AT_TARGET = 2;
+ /**
+ * The current event phase is the bubbling phase.
+ */
+ public static final short BUBBLING_PHASE = 3;
+
+ /**
+ * The name should be an <a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-NCName'>NCName</a> as defined in [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>]
+ * and is case-sensitive.
+ * <br> If the attribute <code>Event.namespaceURI</code> is different from
+ * <code>null</code>, this attribute represents a local name.
+ */
+ public String getType();
+
+ /**
+ * Used to indicate the event target. This attribute contains the target
+ * node when used with the .
+ */
+ public EventTarget getTarget();
+
+ /**
+ * Used to indicate the <code>EventTarget</code> whose
+ * <code>EventListeners</code> are currently being processed. This is
+ * particularly useful during the capture and bubbling phases. This
+ * attribute could contain the target node or a target ancestor when
+ * used with the .
+ */
+ public EventTarget getCurrentTarget();
+
+ /**
+ * Used to indicate which phase of event flow is currently being
+ * accomplished.
+ */
+ public short getEventPhase();
+
+ /**
+ * Used to indicate whether or not an event is a bubbling event. If the
+ * event can bubble the value is <code>true</code>, otherwise the value
+ * is <code>false</code>.
+ */
+ public boolean getBubbles();
+
+ /**
+ * Used to indicate whether or not an event can have its default action
+ * prevented (see also ). If the default action can be prevented the
+ * value is <code>true</code>, otherwise the value is <code>false</code>
+ * .
+ */
+ public boolean getCancelable();
+
+ /**
+ * Used to specify the time (in milliseconds relative to the epoch) at
+ * which the event was created. Due to the fact that some systems may
+ * not provide this information the value of <code>timeStamp</code> may
+ * be not available for all events. When not available, a value of
+ * <code>0</code> will be returned. Examples of epoch time are the time
+ * of the system start or 0:0:0 UTC 1st January 1970.
+ */
+ public long getTimeStamp();
+
+ /**
+ * This method is used to prevent event listeners of the same group to be
+ * triggered but its effect is deferred until all event listeners
+ * attached on the <code>currentTarget</code> have been triggered (see
+ * ). Once it has been called, further calls to that method have no
+ * additional effect.
+ * <p ><b>Note:</b> This method does not prevent the default action from
+ * being invoked; use <code>preventDefault</code> for that effect.
+ */
+ public void stopPropagation();
+
+ /**
+ * If an event is cancelable, the <code>preventDefault</code> method is
+ * used to signify that the event is to be canceled, meaning any default
+ * action normally taken by the implementation as a result of the event
+ * will not occur (see also ), and thus independently of event groups.
+ * Calling this method for a non-cancelable event has no effect.
+ * <p ><b>Note:</b> This method does not stop the event propagation; use
+ * <code>stopPropagation</code> or <code>stopImmediatePropagation</code>
+ * for that effect.
+ */
+ public void preventDefault();
+
+ /**
+ * The <code>initEvent</code> method is used to initialize the value of
+ * an <code>Event</code> created through the
+ * <code>DocumentEvent.createEvent</code> method. This method may only
+ * be called before the <code>Event</code> has been dispatched via the
+ * <code>EventTarget.dispatchEvent()</code> method. If the method is
+ * called several times before invoking
+ * <code>EventTarget.dispatchEvent</code>, only the final invocation
+ * takes precedence. This method has no effect if called after the event
+ * has been dispatched. If called from a subclass of the
+ * <code>Event</code> interface only the values specified in this method
+ * are modified, all other attributes are left unchanged.
+ * <br> This method sets the <code>Event.type</code> attribute to
+ * <code>eventTypeArg</code>, and <code>Event.namespaceURI</code> to
+ * <code>null</code>. To initialize an event with a namespace URI, use
+ * the <code>Event.initEventNS(namespaceURIArg, eventTypeArg, ...)</code>
+ * method.
+ * @param eventTypeArg Specifies <code>Event.type</code>.
+ * @param canBubbleArg Specifies <code>Event.bubbles</code>. This
+ * parameter overrides the intrinsic bubbling behavior of the event.
+ * @param cancelableArg Specifies <code>Event.cancelable</code>. This
+ * parameter overrides the intrinsic cancelable behavior of the event.
+ */
+ public void initEvent(String eventTypeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg);
+
+ /**
+ * The namespace URI associated with this event at creation time, or
+ * <code>null</code> if it is unspecified.
+ * <br> For events initialized with a DOM Level 2 Events method, such as
+ * <code>Event.initEvent()</code>, this is always <code>null</code>.
+ * @since DOM Level 3
+ */
+ public String getNamespaceURI();
+
+ /**
+ * This method will always return <code>false</code>, unless the event
+ * implements the <code>CustomEvent</code> interface.
+ * @return <code>false</code>, unless the event object implements the
+ * <code>CustomEvent</code> interface.
+ * @since DOM Level 3
+ */
+ public boolean isCustom();
+
+ /**
+ * This method is used to prevent event listeners of the same group to be
+ * triggered and, unlike <code>stopPropagation</code> its effect is
+ * immediate (see ). Once it has been called, further calls to that
+ * method have no additional effect.
+ * <p ><b>Note:</b> This method does not prevent the default action from
+ * being invoked; use <code>Event.preventDefault()</code> for that
+ * effect.
+ * @since DOM Level 3
+ */
+ public void stopImmediatePropagation();
+
+ /**
+ * This method will return <code>true</code> if the method
+ * <code>Event.preventDefault()</code> has been called for this event,
+ * <code>false</code> otherwise.
+ * @return <code>true</code> if <code>Event.preventDefault()</code> has
+ * been called for this event.
+ * @since DOM Level 3
+ */
+ public boolean isDefaultPrevented();
+
+ /**
+ * The <code>initEventNS</code> method is used to initialize the value of
+ * an <code>Event</code> object and has the same behavior as
+ * <code>Event.initEvent()</code>.
+ * @param namespaceURIArg Specifies <code>Event.namespaceuRI</code>, the
+ * namespace URI associated with this event, or <code>null</code> if
+ * no namespace.
+ * @param eventTypeArg Specifies <code>Event.type</code>, the local name
+ * of the event type.
+ * @param canBubbleArg Refer to the <code>Event.initEvent()</code>
+ * method for a description of this parameter.
+ * @param cancelableArg Refer to the <code>Event.initEvent()</code>
+ * method for a description of this parameter.
+ * @since DOM Level 3
+ */
+ public void initEventNS(String namespaceURIArg,
+ String eventTypeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg);
+
+}
diff --git a/src/bind/java/org/w3c/dom/events/EventException.java b/src/bind/java/org/w3c/dom/events/EventException.java
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.events;
+
+/**
+ * Event operations may throw an <code>EventException</code> as specified in
+ * their method descriptions.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/NOTE-DOM-Level-3-Events-20031107'>Document Object Model (DOM) Level 3 Events Specification</a>.
+ * @since DOM Level 2
+ */
+public class EventException extends RuntimeException {
+ public EventException(short code, String message) {
+ super(message);
+ this.code = code;
+ }
+ public short code;
+ // EventExceptionCode
+ /**
+ * If the <code>Event.type</code> was not specified by initializing the
+ * event before the method was called. Specification of the
+ * <code>Event.type</code> as <code>null</code> or an empty string will
+ * also trigger this exception.
+ */
+ public static final short UNSPECIFIED_EVENT_TYPE_ERR = 0;
+ /**
+ * If the <code>Event</code> object is already dispatched in the tree.
+ * @since DOM Level 3
+ */
+ public static final short DISPATCH_REQUEST_ERR = 1;
+
+}
diff --git a/src/bind/java/org/w3c/dom/events/EventListener.java b/src/bind/java/org/w3c/dom/events/EventListener.java
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.events;
+
+/**
+ * The <code>EventListener</code> interface is the primary way for handling
+ * events. Users implement the <code>EventListener</code> interface and
+ * register their event listener on an <code>EventTarget</code>. The users
+ * should also remove their <code>EventListener</code> from its
+ * <code>EventTarget</code> after they have completed using the listener.
+ * <p> Copying a <code>Node</code>, with methods such as
+ * <code>Node.cloneNode</code> or <code>Range.cloneContents</code>, does not
+ * copy the event listeners attached to it. Event listeners must be attached
+ * to the newly created <code>Node</code> afterwards if so desired.
+ * <p> Moving a <code>Node</code>, with methods <code>Document.adoptNode</code>
+ * , <code>Node.appendChild</code>, or <code>Range.extractContents</code>,
+ * does not affect the event listeners attached to it.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/NOTE-DOM-Level-3-Events-20031107'>Document Object Model (DOM) Level 3 Events Specification</a>.
+ * @since DOM Level 2
+ */
+public interface EventListener {
+ /**
+ * This method is called whenever an event occurs of the event type for
+ * which the <code>EventListener</code> interface was registered.
+ * @param evt The <code>Event</code> contains contextual information
+ * about the event.
+ */
+ public void handleEvent(Event evt);
+
+}
diff --git a/src/bind/java/org/w3c/dom/events/EventTarget.java b/src/bind/java/org/w3c/dom/events/EventTarget.java
--- /dev/null
@@ -0,0 +1,202 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.events;
+
+/**
+ * The <code>EventTarget</code> interface is implemented by all the objects
+ * which could be event targets in an implementation which supports the .
+ * The interface allows registration, removal or query of event listeners,
+ * and dispatch of events to an event target.
+ * <p> When used with , this interface is implemented by all target nodes and
+ * target ancestors, i.e. all DOM <code>Nodes</code> of the tree support
+ * this interface when the implementation conforms to DOM Level 3 Events
+ * and, therefore, this interface can be obtained by using binding-specific
+ * casting methods on an instance of the <code>Node</code> interface.
+ * <p> Invoking <code>addEventListener</code> or
+ * <code>addEventListenerNS</code> multiple times on the same
+ * <code>EventTarget</code> with the same parameters (
+ * <code>namespaceURI</code>, <code>type</code>, <code>listener</code>, and
+ * <code>useCapture</code>) is considered to be a no-op and thus
+ * independently of the event group. They do not cause the
+ * <code>EventListener</code> to be called more than once and do not cause a
+ * change in the triggering order. In order to guarantee that an event
+ * listener will be added to the event target for the specified event group,
+ * one needs to invoke <code>removeEventListener</code> or
+ * <code>removeEventListenerNS</code> first.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/NOTE-DOM-Level-3-Events-20031107'>Document Object Model (DOM) Level 3 Events Specification</a>.
+ * @since DOM Level 2
+ */
+public interface EventTarget {
+ /**
+ * This method allows the registration of an event listener in the
+ * default group and, depending on the <code>useCapture</code>
+ * parameter, on the capture phase of the DOM event flow or its target
+ * and bubbling phases.
+ * @param type Specifies the <code>Event.type</code> associated with the
+ * event for which the user is registering.
+ * @param listener The <code>listener</code> parameter takes an object
+ * implemented by the user which implements the
+ * <code>EventListener</code> interface and contains the method to be
+ * called when the event occurs.
+ * @param useCapture If true, <code>useCapture</code> indicates that the
+ * user wishes to add the event listener for the capture phase only,
+ * i.e. this event listener will not be triggered during the target
+ * and bubbling phases. If <code>false</code>, the event listener will
+ * only be triggered during the target and bubbling phases.
+ */
+ public void addEventListener(String type,
+ EventListener listener,
+ boolean useCapture);
+
+ /**
+ * This method allows the removal of event listeners from the default
+ * group.
+ * <br> Calling <code>removeEventListener</code> with arguments which do
+ * not identify any currently registered <code>EventListener</code> on
+ * the <code>EventTarget</code> has no effect.
+ * @param type Specifies the <code>Event.type</code> for which the user
+ * registered the event listener.
+ * @param listener The <code>EventListener</code> to be removed.
+ * @param useCapture Specifies whether the <code>EventListener</code>
+ * being removed was registered for the capture phase or not. If a
+ * listener was registered twice, once for the capture phase and once
+ * for the target and bubbling phases, each must be removed
+ * separately. Removal of an event listener registered for the capture
+ * phase does not affect the same event listener registered for the
+ * target and bubbling phases, and vice versa.
+ */
+ public void removeEventListener(String type,
+ EventListener listener,
+ boolean useCapture);
+
+ /**
+ * This method allows the dispatch of events into the implementation's
+ * event model. The event target of the event is the
+ * <code>EventTarget</code> object on which <code>dispatchEvent</code>
+ * is called.
+ * @param evt The event to be dispatched.
+ * @return Indicates whether any of the listeners which handled the
+ * event called <code>Event.preventDefault()</code>. If
+ * <code>Event.preventDefault()</code> was called the returned value
+ * is <code>false</code>, else it is <code>true</code>.
+ * @exception EventException
+ * UNSPECIFIED_EVENT_TYPE_ERR: Raised if the <code>Event.type</code>
+ * was not specified by initializing the event before
+ * <code>dispatchEvent</code> was called. Specification of the
+ * <code>Event.type</code> as <code>null</code> or an empty string
+ * will also trigger this exception.
+ * <br> DISPATCH_REQUEST_ERR: Raised if the <code>Event</code> object is
+ * already being dispatched in the tree.
+ * <br> NOT_SUPPORTED_ERR: Raised if the <code>Event</code> object has
+ * not been created using <code>DocumentEvent.createEvent()</code> or
+ * does not support the interface <code>CustomEvent</code>.
+ * @version DOM Level 3
+ */
+ public boolean dispatchEvent(Event evt)
+ throws EventException;
+
+ /**
+ * This method allows the registration of an event listener in a
+ * specified group or the default group and, depending on the
+ * <code>useCapture</code> parameter, on the capture phase of the DOM
+ * event flow or its target and bubbling phases.
+ * @param namespaceURI Specifies the <code>Event.namespaceURI</code>
+ * associated with the event for which the user is registering.
+ * @param type Specifies the <code>Event.type</code> associated with the
+ * event for which the user is registering.
+ * @param listener The <code>listener</code> parameter takes an object
+ * implemented by the user which implements the
+ * <code>EventListener</code> interface and contains the method to be
+ * called when the event occurs.
+ * @param useCapture If true, <code>useCapture</code> indicates that the
+ * user wishes to add the event listener for the capture phase only,
+ * i.e. this event listener will not be triggered during the target
+ * and bubbling phases. If <code>false</code>, the event listener will
+ * only be triggered during the target and bubbling phases.
+ * @param evtGroup The object that represents the event group to
+ * associate with the <code>EventListener</code> (see also ). Use
+ * <code>null</code> to attach the event listener to the default
+ * group.
+ * @since DOM Level 3
+ */
+ public void addEventListenerNS(String namespaceURI,
+ String type,
+ EventListener listener,
+ boolean useCapture,
+ Object evtGroup);
+
+ /**
+ * This method allows the removal of an event listener, independently of
+ * the associated event group.
+ * <br> Calling <code>removeEventListenerNS</code> with arguments which do
+ * not identify any currently registered <code>EventListener</code> on
+ * the <code>EventTarget</code> has no effect.
+ * @param namespaceURI Specifies the <code>Event.namespaceURI</code>
+ * associated with the event for which the user registered the event
+ * listener.
+ * @param type Specifies the <code>Event.type</code> associated with the
+ * event for which the user registered the event listener.
+ * @param listener The <code>EventListener</code> parameter indicates
+ * the <code>EventListener</code> to be removed.
+ * @param useCapture Specifies whether the <code>EventListener</code>
+ * being removed was registered for the capture phase or not. If a
+ * listener was registered twice, once for the capture phase and once
+ * for the target and bubbling phases, each must be removed
+ * separately. Removal of an event listener registered for the capture
+ * phase does not affect the same event listener registered for the
+ * target and bubbling phases, and vice versa.
+ * @since DOM Level 3
+ */
+ public void removeEventListenerNS(String namespaceURI,
+ String type,
+ EventListener listener,
+ boolean useCapture);
+
+ /**
+ * This method allows the DOM application to know if an event listener,
+ * attached to this <code>EventTarget</code> or one of its ancestors,
+ * will be triggered by the specified event type during the dispatch of
+ * the event to this event target or one of its descendants.
+ * @param namespaceURI Specifies the <code>Event.namespaceURI</code>
+ * associated with the event.
+ * @param type Specifies the <code>Event.type</code> associated with the
+ * event.
+ * @return <code>true</code> if an event listener will be triggered on
+ * the <code>EventTarget</code> with the specified event type,
+ * <code>false</code> otherwise.
+ * @since DOM Level 3
+ */
+ public boolean willTriggerNS(String namespaceURI,
+ String type);
+
+ /**
+ * This method allows the DOM application to know if this
+ * <code>EventTarget</code> contains an event listener registered for
+ * the specified event type. This is useful for determining at which
+ * nodes within a hierarchy altered handling of specific event types has
+ * been introduced, but should not be used to determine whether the
+ * specified event type triggers an event listener (see
+ * <code>EventTarget.willTriggerNS()</code>).
+ * @param namespaceURI Specifies the <code>Event.namespaceURI</code>
+ * associated with the event.
+ * @param type Specifies the <code>Event.type</code> associated with the
+ * event.
+ * @return <code>true</code> if an event listener is registered on this
+ * <code>EventTarget</code> for the specified event type,
+ * <code>false</code> otherwise.
+ * @since DOM Level 3
+ */
+ public boolean hasEventListenerNS(String namespaceURI,
+ String type);
+
+}
diff --git a/src/bind/java/org/w3c/dom/events/KeyboardEvent.java b/src/bind/java/org/w3c/dom/events/KeyboardEvent.java
--- /dev/null
@@ -0,0 +1,178 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.events;
+
+import org.w3c.dom.views.AbstractView;
+
+/**
+ * The <code>KeyboardEvent</code> interface provides specific contextual
+ * information associated with keyboard devices. Each keyboard event
+ * references a key using an identifier. Keyboard events are commonly
+ * directed at the element that has the focus.
+ * <p> The <code>KeyboardEvent</code> interface provides convenient attributes
+ * for some common modifiers keys: <code>KeyboardEvent.ctrlKey</code>,
+ * <code>KeyboardEvent.shiftKey</code>, <code>KeyboardEvent.altKey</code>,
+ * <code>KeyboardEvent.metaKey</code>. These attributes are equivalent to
+ * use the method
+ * <code>KeyboardEvent.getModifierState(keyIdentifierArg)</code> with
+ * "Control", "Shift", "Alt", or "Meta" respectively.
+ * <p> To create an instance of the <code>KeyboardEvent</code> interface, use
+ * the <code>DocumentEvent.createEvent("KeyboardEvent")</code> method call.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/NOTE-DOM-Level-3-Events-20031107'>Document Object Model (DOM) Level 3 Events Specification</a>.
+ * @since DOM Level 3
+ */
+public interface KeyboardEvent extends UIEvent {
+ // KeyLocationCode
+ /**
+ * The key activation is not distinguished as the left or right version
+ * of the key, and did not originate from the numeric keypad (or did not
+ * originate with a virtual key corresponding to the numeric keypad).
+ * Example: the 'Q' key on a PC 101 Key US keyboard.
+ */
+ public static final int DOM_KEY_LOCATION_STANDARD = 0x00;
+ /**
+ * The key activated is in the left key location (there is more than one
+ * possible location for this key). Example: the left Shift key on a PC
+ * 101 Key US keyboard.
+ */
+ public static final int DOM_KEY_LOCATION_LEFT = 0x01;
+ /**
+ * The key activation is in the right key location (there is more than
+ * one possible location for this key). Example: the right Shift key on
+ * a PC 101 Key US keyboard.
+ */
+ public static final int DOM_KEY_LOCATION_RIGHT = 0x02;
+ /**
+ * The key activation originated on the numeric keypad or with a virtual
+ * key corresponding to the numeric keypad. Example: the '1' key on a PC
+ * 101 Key US keyboard located on the numeric pad.
+ */
+ public static final int DOM_KEY_LOCATION_NUMPAD = 0x03;
+
+ /**
+ * <code>keyIdentifier</code> holds the identifier of the key. The key
+ * identifiers are defined in Appendix A.2 "". Implementations that are
+ * unable to identify a key must use the key identifier
+ * <code>"Unidentified"</code>.
+ */
+ public String getKeyIdentifier();
+
+ /**
+ * The <code>keyLocation</code> attribute contains an indication of the
+ * location of they key on the device, as described in .
+ */
+ public int getKeyLocation();
+
+ /**
+ * <code>true</code> if the control (Ctrl) key modifier is activated.
+ */
+ public boolean getCtrlKey();
+
+ /**
+ * <code>true</code> if the shift (Shift) key modifier is activated.
+ */
+ public boolean getShiftKey();
+
+ /**
+ * <code>true</code> if the alternative (Alt) key modifier is activated.
+ * <p ><b>Note:</b> The Option key modifier on Macintosh systems must be
+ * represented using this key modifier.
+ */
+ public boolean getAltKey();
+
+ /**
+ * <code>true</code> if the meta (Meta) key modifier is activated.
+ * <p ><b>Note:</b> The Command key modifier on Macintosh systems must be
+ * represented using this key modifier.
+ */
+ public boolean getMetaKey();
+
+ /**
+ * This methods queries the state of a modifier using a key identifier.
+ * See also .
+ * @param keyIdentifierArg A modifier key identifier. Common modifier
+ * keys are <code>"Alt"</code>, <code>"AltGraph"</code>,
+ * <code>"CapsLock"</code>, <code>"Control"</code>, <code>"Meta"</code>
+ * , <code>"NumLock"</code>, <code>"Scroll"</code>, or
+ * <code>"Shift"</code>.
+ * <p ><b>Note:</b> If an application wishes to distinguish between
+ * right and left modifiers, this information could be deduced using
+ * keyboard events and <code>KeyboardEvent.keyLocation</code>.
+ * @return <code>true</code> if it is modifier key and the modifier is
+ * activated, <code>false</code> otherwise.
+ */
+ public boolean getModifierState(String keyIdentifierArg);
+
+ /**
+ * The <code>initKeyboardEvent</code> method is used to initialize the
+ * value of a <code>KeyboardEvent</code> object and has the same
+ * behavior as <code>UIEvent.initUIEvent()</code>. The value of
+ * <code>UIEvent.detail</code> remains undefined.
+ * @param typeArg Refer to the <code>UIEvent.initUIEvent()</code> method
+ * for a description of this parameter.
+ * @param canBubbleArg Refer to the <code>UIEvent.initUIEvent()</code>
+ * method for a description of this parameter.
+ * @param cancelableArg Refer to the <code>UIEvent.initUIEvent()</code>
+ * method for a description of this parameter.
+ * @param viewArg Refer to the <code>UIEvent.initUIEvent()</code> method
+ * for a description of this parameter.
+ * @param keyIdentifierArg Specifies
+ * <code>KeyboardEvent.keyIdentifier</code>.
+ * @param keyLocationArg Specifies <code>KeyboardEvent.keyLocation</code>
+ * .
+ * @param modifiersList A <a href='http://www.w3.org/TR/2000/REC-xml-20001006#NT-S'>white space</a> separated list of modifier key identifiers to be activated on this
+ * object.
+ */
+ public void initKeyboardEvent(String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ String keyIdentifierArg,
+ int keyLocationArg,
+ String modifiersList);
+
+ /**
+ * The <code>initKeyboardEventNS</code> method is used to initialize the
+ * value of a <code>KeyboardEvent</code> object and has the same
+ * behavior as <code>UIEvent.initUIEventNS()</code>. The value of
+ * <code>UIEvent.detail</code> remains undefined.
+ * @param namespaceURI Refer to the <code>UIEvent.initUIEventNS()</code>
+ * method for a description of this parameter.
+ * @param typeArg Refer to the <code>UIEvent.initUIEventNS()</code>
+ * method for a description of this parameter.
+ * @param canBubbleArg Refer to the <code>UIEvent.initUIEventNS()</code>
+ * method for a description of this parameter.
+ * @param cancelableArg Refer to the <code>UIEvent.initUIEventNS()</code>
+ * method for a description of this parameter.
+ * @param viewArg Refer to the <code>UIEvent.initUIEventNS()</code>
+ * method for a description of this parameter.
+ * @param keyIdentifierArg Refer to the
+ * <code>KeyboardEvent.initKeyboardEvent()</code> method for a
+ * description of this parameter.
+ * @param keyLocationArg Refer to the
+ * <code>KeyboardEvent.initKeyboardEvent()</code> method for a
+ * description of this parameter.
+ * @param modifiersList A <a href='http://www.w3.org/TR/2000/REC-xml-20001006#NT-S'>white space</a> separated list of modifier key identifiers to be activated on this
+ * object. As an example, <code>"Control Alt"</code> will activated
+ * the control and alt modifiers.
+ */
+ public void initKeyboardEventNS(String namespaceURI,
+ String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ String keyIdentifierArg,
+ int keyLocationArg,
+ String modifiersList);
+
+}
diff --git a/src/bind/java/org/w3c/dom/events/MouseEvent.java b/src/bind/java/org/w3c/dom/events/MouseEvent.java
--- /dev/null
@@ -0,0 +1,219 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.events;
+
+import org.w3c.dom.views.AbstractView;
+
+/**
+ * The <code>MouseEvent</code> interface provides specific contextual
+ * information associated with Mouse events.
+ * <p> In the case of nested elements mouse events are always targeted at the
+ * most deeply nested element. Ancestors of the targeted element may use
+ * bubbling to obtain notification of mouse events which occur within theirs
+ * descendent elements.
+ * <p> To create an instance of the <code>MouseEvent</code> interface, use the
+ * <code>DocumentEvent.createEvent("MouseEvent")</code> method call.
+ * <p ><b>Note:</b> When initializing <code>MouseEvent</code> objects using
+ * <code>initMouseEvent</code> or <code>initMouseEventNS</code>,
+ * implementations should use the client coordinates <code>clientX</code>
+ * and <code>clientY</code> for calculation of other coordinates (such as
+ * target coordinates exposed by DOM Level 0 implementations).
+ * <p>See also the <a href='http://www.w3.org/TR/2003/NOTE-DOM-Level-3-Events-20031107'>Document Object Model (DOM) Level 3 Events Specification</a>.
+ * @since DOM Level 2
+ */
+public interface MouseEvent extends UIEvent {
+ /**
+ * The horizontal coordinate at which the event occurred relative to the
+ * origin of the screen coordinate system.
+ */
+ public int getScreenX();
+
+ /**
+ * The vertical coordinate at which the event occurred relative to the
+ * origin of the screen coordinate system.
+ */
+ public int getScreenY();
+
+ /**
+ * The horizontal coordinate at which the event occurred relative to the
+ * DOM implementation's client area.
+ */
+ public int getClientX();
+
+ /**
+ * The vertical coordinate at which the event occurred relative to the DOM
+ * implementation's client area.
+ */
+ public int getClientY();
+
+ /**
+ * <code>true</code> if the control (Ctrl) key modifier is activated.
+ */
+ public boolean getCtrlKey();
+
+ /**
+ * <code>true</code> if the shift (Shift) key modifier is activated.
+ */
+ public boolean getShiftKey();
+
+ /**
+ * <code>true</code> if the alt (alternative) key modifier is activated.
+ * <p ><b>Note:</b> The Option key modifier on Macintosh systems must be
+ * represented using this key modifier.
+ */
+ public boolean getAltKey();
+
+ /**
+ * <code>true</code> if the meta (Meta) key modifier is activated.
+ * <p ><b>Note:</b> The Command key modifier on Macintosh system must be
+ * represented using this meta key.
+ */
+ public boolean getMetaKey();
+
+ /**
+ * During mouse events caused by the depression or release of a mouse
+ * button, <code>button</code> is used to indicate which mouse button
+ * changed state. <code>0</code> indicates the normal button of the
+ * mouse (in general on the left or the one button on Macintosh mice,
+ * used to activate a button or select text). <code>2</code> indicates
+ * the contextual property (in general on the right, used to display a
+ * context menu) button of the mouse if present. <code>1</code>
+ * indicates the extra (in general in the middle and often combined with
+ * the mouse wheel) button. Some mice may provide or simulate more
+ * buttons, and values higher than <code>2</code> can be used to
+ * represent such buttons.
+ */
+ public short getButton();
+
+ /**
+ * Used to identify a secondary <code>EventTarget</code> related to a UI
+ * event. Currently this attribute is used with the mouseover event to
+ * indicate the <code>EventTarget</code> which the pointing device
+ * exited and with the mouseout event to indicate the
+ * <code>EventTarget</code> which the pointing device entered.
+ */
+ public EventTarget getRelatedTarget();
+
+ /**
+ * The <code>initMouseEvent</code> method is used to initialize the value
+ * of a <code>MouseEvent</code> object and has the same behavior as
+ * <code>UIEvent.initUIEvent()</code>.
+ * @param typeArg Refer to the <code>UIEvent.initUIEvent()</code> method
+ * for a description of this parameter.
+ * @param canBubbleArg Refer to the <code>UIEvent.initUIEvent()</code>
+ * method for a description of this parameter.
+ * @param cancelableArg Refer to the <code>UIEvent.initUIEvent()</code>
+ * method for a description of this parameter.
+ * @param viewArg Refer to the <code>UIEvent.initUIEvent()</code> method
+ * for a description of this parameter.
+ * @param detailArg Refer to the <code>UIEvent.initUIEvent()</code>
+ * method for a description of this parameter.
+ * @param screenXArg Specifies <code>MouseEvent.screenX</code>.
+ * @param screenYArg Specifies <code>MouseEvent.screenY</code>.
+ * @param clientXArg Specifies <code>MouseEvent.clientX</code>.
+ * @param clientYArg Specifies <code>MouseEvent.clientY</code>.
+ * @param ctrlKeyArg Specifies <code>MouseEvent.ctrlKey</code>.
+ * @param altKeyArg Specifies <code>MouseEvent.altKey</code>.
+ * @param shiftKeyArg Specifies <code>MouseEvent.shiftKey</code>.
+ * @param metaKeyArg Specifies <code>MouseEvent.metaKey</code>.
+ * @param buttonArg Specifies <code>MouseEvent.button</code>.
+ * @param relatedTargetArg Specifies
+ * <code>MouseEvent.relatedTarget</code>.
+ */
+ public void initMouseEvent(String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ int detailArg,
+ int screenXArg,
+ int screenYArg,
+ int clientXArg,
+ int clientYArg,
+ boolean ctrlKeyArg,
+ boolean altKeyArg,
+ boolean shiftKeyArg,
+ boolean metaKeyArg,
+ short buttonArg,
+ EventTarget relatedTargetArg);
+
+ /**
+ * This methods queries the state of a modifier using a key identifier.
+ * See also .
+ * @param keyIdentifierArg A modifier key identifier, as defined by the
+ * <code>KeyboardEvent.keyIdentifier</code> attribute. Common modifier
+ * keys are <code>"Alt"</code>, <code>"AltGraph"</code>,
+ * <code>"CapsLock"</code>, <code>"Control"</code>, <code>"Meta"</code>
+ * , <code>"NumLock"</code>, <code>"Scroll"</code>, or
+ * <code>"Shift"</code>.
+ * <p ><b>Note:</b> If an application wishes to distinguish between
+ * right and left modifiers, this information could be deduced using
+ * keyboard events and <code>KeyboardEvent.keyLocation</code>.
+ * @return <code>true</code> if it is modifier key and the modifier is
+ * activated, <code>false</code> otherwise.
+ * @since DOM Level 3
+ */
+ public boolean getModifierState(String keyIdentifierArg);
+
+ /**
+ * The <code>initMouseEventNS</code> method is used to initialize the
+ * value of a <code>MouseEvent</code> object and has the same behavior
+ * as <code>UIEvent.initUIEventNS()</code>.
+ * @param namespaceURI Refer to the <code>UIEvent.initUIEventNS()</code>
+ * method for a description of this parameter.
+ * @param typeArg Refer to the <code>UIEvent.initUIEventNS()</code>
+ * method for a description of this parameter.
+ * @param canBubbleArg Refer to the <code>UIEvent.initUIEventNS()</code>
+ * method for a description of this parameter.
+ * @param cancelableArg Refer to the <code>UIEvent.initUIEventNS()</code>
+ * method for a description of this parameter.
+ * @param viewArg Refer to the <code>UIEvent.initUIEventNS()</code>
+ * method for a description of this parameter.
+ * @param detailArg Refer to the <code>UIEvent.initUIEventNS()</code>
+ * method for a description of this parameter.
+ * @param screenXArg Refer to the
+ * <code>MouseEvent.initMouseEvent()</code> method for a description
+ * of this parameter.
+ * @param screenYArg Refer to the
+ * <code>MouseEvent.initMouseEvent()</code> method for a description
+ * of this parameter.
+ * @param clientXArg Refer to the
+ * <code>MouseEvent.initMouseEvent()</code> method for a description
+ * of this parameter.
+ * @param clientYArg Refer to the
+ * <code>MouseEvent.initMouseEvent()</code> method for a description
+ * of this parameter.
+ * @param buttonArg Refer to the <code>MouseEvent.initMouseEvent()</code>
+ * method for a description of this parameter.
+ * @param relatedTargetArg Refer to the
+ * <code>MouseEvent.initMouseEvent()</code> method for a description
+ * of this parameter.
+ * @param modifiersList A <a href='http://www.w3.org/TR/2000/REC-xml-20001006#NT-S'>white space</a> separated list of modifier key identifiers to be activated on this
+ * object. As an example, <code>"Control Alt"</code> will activated
+ * the control and alt modifiers.
+ * @since DOM Level 3
+ */
+ public void initMouseEventNS(String namespaceURI,
+ String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ int detailArg,
+ int screenXArg,
+ int screenYArg,
+ int clientXArg,
+ int clientYArg,
+ short buttonArg,
+ EventTarget relatedTargetArg,
+ String modifiersList);
+
+}
diff --git a/src/bind/java/org/w3c/dom/events/MutationEvent.java b/src/bind/java/org/w3c/dom/events/MutationEvent.java
--- /dev/null
@@ -0,0 +1,160 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.events;
+
+import org.w3c.dom.Node;
+
+/**
+ * The <code>MutationEvent</code> interface provides specific contextual
+ * information associated with Mutation events.
+ * <p> To create an instance of the <code>MutationEvent</code> interface, use
+ * the <code>DocumentEvent.createEvent("MutationEvent")</code> method call.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/NOTE-DOM-Level-3-Events-20031107'>Document Object Model (DOM) Level 3 Events Specification</a>.
+ * @since DOM Level 2
+ */
+public interface MutationEvent extends Event {
+ // attrChangeType
+ /**
+ * The <code>Attr</code> was modified in place.
+ */
+ public static final short MODIFICATION = 1;
+ /**
+ * The <code>Attr</code> was just added.
+ */
+ public static final short ADDITION = 2;
+ /**
+ * The <code>Attr</code> was just removed.
+ */
+ public static final short REMOVAL = 3;
+
+ /**
+ * <code>relatedNode</code> is used to identify a secondary node related
+ * to a mutation event. For example, if a mutation event is dispatched
+ * to a node indicating that its parent has changed, the
+ * <code>relatedNode</code> is the changed parent. If an event is
+ * instead dispatched to a subtree indicating a node was changed within
+ * it, the <code>relatedNode</code> is the changed node. In the case of
+ * the
+ * <code>{"http://www.w3.org/2001/xml-events", "DOMAttrModified"}</code>
+ * event it indicates the <code>Attr</code> node which was modified,
+ * added, or removed.
+ */
+ public Node getRelatedNode();
+
+ /**
+ * <code>prevValue</code> indicates the previous value of the
+ * <code>Attr</code> node in
+ * <code>{"http://www.w3.org/2001/xml-events", "DOMAttrModified"}</code>
+ * events, and of the <code>CharacterData</code> node in
+ * <code>{"http://www.w3.org/2001/xml-events", "DOMCharacterDataModified"}</code>
+ * events.
+ */
+ public String getPrevValue();
+
+ /**
+ * <code>newValue</code> indicates the new value of the <code>Attr</code>
+ * node in
+ * <code>{"http://www.w3.org/2001/xml-events", "DOMAttrModified"}</code>
+ * events, and of the <code>CharacterData</code> node in
+ * <code>{"http://www.w3.org/2001/xml-events", "DOMCharacterDataModified"}</code>
+ * events.
+ */
+ public String getNewValue();
+
+ /**
+ * <code>attrName</code> indicates the name of the changed
+ * <code>Attr</code> node in a
+ * <code>{"http://www.w3.org/2001/xml-events", "DOMAttrModified"}</code>
+ * event.
+ */
+ public String getAttrName();
+
+ /**
+ * <code>attrChange</code> indicates the type of change which triggered
+ * the
+ * <code>{"http://www.w3.org/2001/xml-events", "DOMAttrModified"}</code>
+ * event. The values can be <code>MODIFICATION</code>,
+ * <code>ADDITION</code>, or <code>REMOVAL</code>.
+ */
+ public short getAttrChange();
+
+ /**
+ * The <code>initMutationEvent</code> method is used to initialize the
+ * value of a <code>MutationEvent</code> object and has the same
+ * behavior as <code>Event.initEvent()</code>.
+ * @param typeArg Refer to the <code>Event.initEvent()</code> method for
+ * a description of this parameter.
+ * @param canBubbleArg Refer to the <code>Event.initEvent()</code>
+ * method for a description of this parameter.
+ * @param cancelableArg Refer to the <code>Event.initEvent()</code>
+ * method for a description of this parameter.
+ * @param relatedNodeArg Specifies <code>MutationEvent.relatedNode</code>
+ * .
+ * @param prevValueArg Specifies <code>MutationEvent.prevValue</code>.
+ * This value may be null.
+ * @param newValueArg Specifies <code>MutationEvent.newValue</code>.
+ * This value may be null.
+ * @param attrNameArg Specifies <code>MutationEvent.attrname</code>.
+ * This value may be null.
+ * @param attrChangeArg Specifies <code>MutationEvent.attrChange</code>.
+ * This value may be null.
+ */
+ public void initMutationEvent(String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ Node relatedNodeArg,
+ String prevValueArg,
+ String newValueArg,
+ String attrNameArg,
+ short attrChangeArg);
+
+ /**
+ * The <code>initMutationEventNS</code> method is used to initialize the
+ * value of a <code>MutationEvent</code> object and has the same
+ * behavior as <code>Event.initEventNS()</code>.
+ * @param namespaceURI Refer to the <code>Event.initEventNS()</code>
+ * method for a description of this parameter.
+ * @param typeArg Refer to the <code>Event.initEventNS()</code> method
+ * for a description of this parameter.
+ * @param canBubbleArg Refer to the <code>Event.initEventNS()</code>
+ * method for a description of this parameter.
+ * @param cancelableArg Refer to the <code>Event.initEventNS()</code>
+ * method for a description of this parameter.
+ * @param relatedNodeArg Refer to the
+ * <code>MutationEvent.initMutationEvent()</code> method for a
+ * description of this parameter.
+ * @param prevValueArg Refer to the
+ * <code>MutationEvent.initMutationEvent()</code> method for a
+ * description of this parameter.
+ * @param newValueArg Refer to the
+ * <code>MutationEvent.initMutationEvent()</code> method for a
+ * description of this parameter.
+ * @param attrNameArg Refer to the
+ * <code>MutationEvent.initMutationEvent()</code> method for a
+ * description of this parameter.
+ * @param attrChangeArg Refer to the
+ * <code>MutationEvent.initMutationEvent()</code> method for a
+ * description of this parameter.
+ * @since DOM Level 3
+ */
+ public void initMutationEventNS(String namespaceURI,
+ String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ Node relatedNodeArg,
+ String prevValueArg,
+ String newValueArg,
+ String attrNameArg,
+ short attrChangeArg);
+
+}
diff --git a/src/bind/java/org/w3c/dom/events/MutationNameEvent.java b/src/bind/java/org/w3c/dom/events/MutationNameEvent.java
--- /dev/null
@@ -0,0 +1,104 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.events;
+
+import org.w3c.dom.Node;
+
+/**
+ * The <code>MutationNameEvent</code> interface provides specific contextual
+ * information associated with Mutation name event types.
+ * <p> To create an instance of the <code>MutationNameEvent</code> interface,
+ * use the <code>Document.createEvent("MutationNameEvent")</code> method
+ * call.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/NOTE-DOM-Level-3-Events-20031107'>Document Object Model (DOM) Level 3 Events Specification</a>.
+ * @since DOM Level 3
+ */
+public interface MutationNameEvent extends MutationEvent {
+ /**
+ * The previous value of the <code>relatedNode</code>'s
+ * <code>namespaceURI</code>.
+ */
+ public String getPrevNamespaceURI();
+
+ /**
+ * The previous value of the <code>relatedNode</code>'s
+ * <code>nodeName</code>.
+ */
+ public String getPrevNodeName();
+
+ /**
+ * The <code>initMutationNameEvent</code> method is used to initialize
+ * the value of a <code>MutationNameEvent</code> object and has the same
+ * behavior as <code>MutationEvent.initMutationEvent()</code>.
+ * @param typeArg Refer to the
+ * <code>MutationEvent.initMutationEvent()</code> method for a
+ * description of this parameter.
+ * @param canBubbleArg Refer to the
+ * <code>MutationEvent.initMutationEvent()</code> method for a
+ * description of this parameter.
+ * @param cancelableArg Refer to the
+ * <code>MutationEvent.initMutationEvent()</code> method for a
+ * description of this parameter.
+ * @param relatedNodeArg Refer to the
+ * <code>MutationEvent.initMutationEvent()</code> method for a
+ * description of this parameter.
+ * @param prevNamespaceURIArg Specifies
+ * <code>MutationNameEvent.prevNamespaceURI</code>. This value may be
+ * <code>null</code>.
+ * @param prevNodeNameArg Specifies
+ * <code>MutationNameEvent.prevNodeName</code>.
+ * @since DOM Level 3
+ */
+ public void initMutationNameEvent(String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ Node relatedNodeArg,
+ String prevNamespaceURIArg,
+ String prevNodeNameArg);
+
+ /**
+ * The <code>initMutationNameEventNS</code> method is used to initialize
+ * the value of a <code>MutationNameEvent</code> object and has the same
+ * behavior as <code>MutationEvent.initMutationEventNS()</code>.
+ * @param namespaceURI Refer to the
+ * <code>MutationEvent.initMutationEventNS()</code> method for a
+ * description of this parameter.
+ * @param typeArg Refer to the
+ * <code>MutationEvent.initMutationEventNS()</code> method for a
+ * description of this parameter.
+ * @param canBubbleArg Refer to the
+ * <code>MutationEvent.initMutationEventNS()</code> method for a
+ * description of this parameter.
+ * @param cancelableArg Refer to the
+ * <code>MutationEvent.initMutationEventNS()</code> method for a
+ * description of this parameter.
+ * @param relatedNodeArg Refer to the
+ * <code>MutationEvent.initMutationEventNS()</code> method for a
+ * description of this parameter.
+ * @param prevNamespaceURIArg Refer to the
+ * <code>MutationEvent.initMutationEvent()</code> method for a
+ * description of this parameter.
+ * @param prevNodeNameArg Refer to the
+ * <code>MutationEvent.initMutationEvent()</code> method for a
+ * description of this parameter.
+ * @since DOM Level 3
+ */
+ public void initMutationNameEventNS(String namespaceURI,
+ String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ Node relatedNodeArg,
+ String prevNamespaceURIArg,
+ String prevNodeNameArg);
+
+}
diff --git a/src/bind/java/org/w3c/dom/events/TextEvent.java b/src/bind/java/org/w3c/dom/events/TextEvent.java
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.events;
+
+import org.w3c.dom.views.AbstractView;
+
+/**
+ * The <code>TextEvent</code> interface provides specific contextual
+ * information associated with Text Events.
+ * <p> To create an instance of the <code>TextEvent</code> interface, use the
+ * <code>DocumentEvent.createEvent("TextEvent")</code> method call.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/NOTE-DOM-Level-3-Events-20031107'>Document Object Model (DOM) Level 3 Events Specification</a>.
+ * @since DOM Level 3
+ */
+public interface TextEvent extends UIEvent {
+ /**
+ * <code>data</code> holds the value of the characters generated by the
+ * character device. This may be a single Unicode character or a
+ * non-empty sequence of Unicode characters [Unicode]. Characters should be normalized as defined by the Unicode
+ * normalization form NFC, defined in [<a href='http://www.unicode.org/unicode/reports/tr15/'>UTR #15</a>]. This
+ * attribute cannot be null or contain the empty string.
+ */
+ public String getData();
+
+ /**
+ * The <code>initTextEvent</code> method is used to initialize the value
+ * of a <code>TextEvent</code> object and has the same behavior as
+ * <code>UIEvent.initUIEvent()</code>. The value of
+ * <code>UIEvent.detail</code> remains undefined.
+ * @param typeArg Refer to the <code>UIEvent.initUIEvent()</code> method
+ * for a description of this parameter.
+ * @param canBubbleArg Refer to the <code>UIEvent.initUIEvent()</code>
+ * method for a description of this parameter.
+ * @param cancelableArg Refer to the <code>UIEvent.initUIEvent()</code>
+ * method for a description of this parameter.
+ * @param viewArg Refer to the <code>UIEvent.initUIEvent()</code> method
+ * for a description of this parameter.
+ * @param dataArg Specifies <code>TextEvent.data</code>.
+ */
+ public void initTextEvent(String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ String dataArg);
+
+ /**
+ * The <code>initTextEventNS</code> method is used to initialize the
+ * value of a <code>TextEvent</code> object and has the same behavior as
+ * <code>UIEvent.initUIEventNS()</code>. The value of
+ * <code>UIEvent.detail</code> remains undefined.
+ * @param namespaceURI Refer to the <code>UIEvent.initUIEventNS()</code>
+ * method for a description of this parameter.
+ * @param type Refer to the <code>UIEvent.initUIEventNS()</code> method
+ * for a description of this parameter.
+ * @param canBubbleArg Refer to the <code>UIEvent.initUIEventNS()</code>
+ * method for a description of this parameter.
+ * @param cancelableArg Refer to the <code>UIEvent.initUIEventNS()</code>
+ * method for a description of this parameter.
+ * @param viewArg Refer to the <code>UIEvent.initUIEventNS()</code>
+ * method for a description of this parameter.
+ * @param dataArg Refer to the <code>TextEvent.initTextEvent()</code>
+ * method for a description of this parameter.
+ */
+ public void initTextEventNS(String namespaceURI,
+ String type,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ String dataArg);
+
+}
diff --git a/src/bind/java/org/w3c/dom/events/UIEvent.java b/src/bind/java/org/w3c/dom/events/UIEvent.java
--- /dev/null
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2003 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] in the hope that
+ * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.events;
+
+import org.w3c.dom.views.AbstractView;
+
+/**
+ * The <code>UIEvent</code> interface provides specific contextual
+ * information associated with User Interface events.
+ * <p> To create an instance of the <code>UIEvent</code> interface, use the
+ * <code>DocumentEvent.createEvent("UIEvent")</code> method call.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/NOTE-DOM-Level-3-Events-20031107'>Document Object Model (DOM) Level 3 Events Specification</a>.
+ * @since DOM Level 2
+ */
+public interface UIEvent extends Event {
+ /**
+ * The <code>view</code> attribute identifies the <code>AbstractView</code>
+ * from which the event was generated.
+ */
+ public AbstractView getView();
+
+ /**
+ * Specifies some detail information about the <code>Event</code>,
+ * depending on the type of event.
+ */
+ public int getDetail();
+
+ /**
+ * The <code>initUIEvent</code> method is used to initialize the value of
+ * a <code>UIEvent</code> object and has the same behavior as
+ * <code>Event.initEvent()</code>.
+ * @param typeArg Refer to the <code>Event.initEvent()</code> method for
+ * a description of this parameter.
+ * @param canBubbleArg Refer to the <code>Event.initEvent()</code>
+ * method for a description of this parameter.
+ * @param cancelableArg Refer to the <code>Event.initEvent()</code>
+ * method for a description of this parameter.
+ * @param viewArg Specifies <code>UIEvent.view</code>.
+ * @param detailArg Specifies <code>UIEvent.detail</code>.
+ */
+ public void initUIEvent(String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ int detailArg);
+
+ /**
+ * The <code>initUIEventNS</code> method is used to initialize the value
+ * of a <code>UIEvent</code> object and has the same behavior as
+ * <code>Event.initEventNS()</code>.
+ * @param namespaceURI Refer to the <code>Event.initEventNS()</code>
+ * method for a description of this parameter.
+ * @param typeArg Refer to the <code>Event.initEventNS()</code> method
+ * for a description of this parameter.
+ * @param canBubbleArg Refer to the <code>Event.initEventNS()</code>
+ * method for a description of this parameter.
+ * @param cancelableArg Refer to the <code>Event.initEventNS()</code>
+ * method for a description of this parameter.
+ * @param viewArg Refer to the <code>UIEvent.initUIEvent()</code> method
+ * for a description of this parameter.
+ * @param detailArg Refer to the <code>UIEvent.initUIEvent()</code>
+ * method for a description of this parameter.
+ * @since DOM Level 3
+ */
+ public void initUIEventNS(String namespaceURI,
+ String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ int detailArg);
+
+}