blob: 8532edb53355bc0ba6a35c874411d05724e25411 [file] [log] [blame]
/*
* Copyright (c) 2006 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/2006/WD-DOM-Level-3-Events-20060413'>
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, DOMActivate for
* example, and set its context information, e.g.
* <code>UIEvent.detail</code> in this example.
* <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.
*/
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
*/
boolean canDispatch(String namespaceURI,
String type);
}