01: /*
02: * Copyright (c) 2006 World Wide Web Consortium,
03: *
04: * (Massachusetts Institute of Technology, European Research Consortium for
05: * Informatics and Mathematics, Keio University). All Rights Reserved. This
06: * work is distributed under the W3C(r) Software License [1] in the hope that
07: * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
08: * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
09: *
10: * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
11: */
12:
13: package org.w3c.dom.events;
14:
15: import org.w3c.dom.DOMException;
16:
17: /**
18: * The <code>DocumentEvent</code> interface provides a mechanism by which the
19: * user can create an <code>Event</code> object of a type supported by the
20: * implementation. If the feature "Events" is supported by the
21: * <code>Document</code> object, the <code>DocumentEvent</code> interface
22: * must be implemented on the same object. If the feature "+Events" is
23: * supported by the <code>Document</code> object, an object that supports
24: * the <code>DocumentEvent</code> interface must be returned by invoking the
25: * method <code>Node.getFeature("+Events", "3.0")</code> on the
26: * <code>Document</code> object.
27: * <p>See also the <a href='http://www.w3.org/TR/2006/WD-DOM-Level-3-Events-20060413'>
28: Document Object Model (DOM) Level 3 Events Specification
29: </a>.
30: * @since DOM Level 2
31: */
32: public interface DocumentEvent {
33: /**
34: *
35: * @param eventType The <code>eventType</code> parameter specifies the
36: * name of the DOM Events interface to be supported by the created
37: * event object, e.g. <code>"Event"</code>, <code>"MouseEvent"</code>,
38: * <code>"MutationEvent"</code> and so on. If the <code>Event</code>
39: * is to be dispatched via the <code>EventTarget.dispatchEvent()</code>
40: * method the appropriate event init method must be called after
41: * creation in order to initialize the <code>Event</code>'s values.
42: * As an example, a user wishing to synthesize some kind of
43: * <code>UIEvent</code> would invoke
44: * <code>DocumentEvent.createEvent("UIEvent")</code>. The
45: * <code>UIEvent.initUIEventNS()</code> method could then be called on
46: * the newly created <code>UIEvent</code> object to set the specific
47: * type of user interface event to be dispatched, DOMActivate for
48: * example, and set its context information, e.g.
49: * <code>UIEvent.detail</code> in this example.
50: * <p ><b>Note:</b> For backward compatibility reason, "UIEvents",
51: * "MouseEvents", "MutationEvents", and "HTMLEvents" feature names are
52: * valid values for the parameter <code>eventType</code> and represent
53: * respectively the interfaces "UIEvent", "MouseEvent",
54: * "MutationEvent", and "Event".
55: * @return The newly created event object.
56: * @exception DOMException
57: * NOT_SUPPORTED_ERR: Raised if the implementation does not support the
58: * <code>Event</code> interface requested.
59: */
60: public Event createEvent(String eventType) throws DOMException;
61:
62: /**
63: * Test if the implementation can generate events of a specified type.
64: * @param namespaceURI Specifies the <code>Event.namespaceURI</code> of
65: * the event.
66: * @param type Specifies the <code>Event.type</code> of the event.
67: * @return <code>true</code> if the implementation can generate and
68: * dispatch this event type, <code>false</code> otherwise.
69: * @since DOM Level 3
70: */
71: public boolean canDispatch(String namespaceURI, String type);
72:
73: }
|