com.google.gwt.dom.client

## Class Document

- java.lang.Object
- - com.google.gwt.core.client.JavaScriptObject
  - - com.google.gwt.dom.client.Node
    - - com.google.gwt.dom.client.Document

-     public class Document
      extends Node

  A Document is the root of the HTML hierarchy and holds the entire content. Besides providing access to the hierarchy, it also provides some convenience methods for accessing certain sets of information from the document.

- - ### Field Summary

    - ### Fields inherited from class com.google.gwt.dom.client.Node

      `DOCUMENT_NODE, ELEMENT_NODE, TEXT_NODE`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `Document()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `AnchorElement` | `createAnchorElement()` Creates an <a> element.
    `AreaElement` | `createAreaElement()` Creates an <area> element.
    `AudioElement` | `createAudioElement()` Creates an <audio> element.
    `BaseElement` | `createBaseElement()` Creates a <base> element.
    `QuoteElement` | `createBlockQuoteElement()` Creates a <blockquote> element.
    `NativeEvent` | `createBlurEvent()` Creates a 'blur' event.
    `BRElement` | `createBRElement()` Creates a <br> element.
    `ButtonElement` | `createButtonElement()` Deprecated. use `createPushButtonElement()`, `createResetButtonElement()` or `createSubmitButtonElement()` instead.
    `InputElement` | `createButtonInputElement()` Creates an <input type='button'> element.
    `CanvasElement` | `createCanvasElement()` Creates a <canvas> element.
    `TableCaptionElement` | `createCaptionElement()` Creates a <caption> element.
    `NativeEvent` | `createChangeEvent()` Creates a 'change' event.
    `InputElement` | `createCheckInputElement()` Creates an <input type='checkbox'> element.
    `NativeEvent` | `createClickEvent(int detail, int screenX, int screenY, int clientX, int clientY, boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey)` Creates a 'click' event.
    `TableColElement` | `createColElement()` Creates a <col> element.
    `TableColElement` | `createColGroupElement()` Creates a <colgroup> element.
    `NativeEvent` | `createContextMenuEvent()` Creates a 'contextmenu' event.
    `NativeEvent` | `createDblClickEvent(int detail, int screenX, int screenY, int clientX, int clientY, boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey)` Creates a 'dblclick' event.
    `ModElement` | `createDelElement()` Creates a <del> element.
    `DivElement` | `createDivElement()` Creates a <div> element.
    `DListElement` | `createDLElement()` Creates a <dl> element.
    `Element` | `createElement(java.lang.String tagName)` Creates a new element.
    `NativeEvent` | `createErrorEvent()` Creates an 'error' event.
    `FieldSetElement` | `createFieldSetElement()` Creates a <fieldset> element.
    `InputElement` | `createFileInputElement()` Creates an <input type='file'> element.
    `NativeEvent` | `createFocusEvent()` Creates a 'focus' event.
    `FormElement` | `createFormElement()` Creates a <form> element.
    `FrameElement` | `createFrameElement()` Creates a <frame> element.
    `FrameSetElement` | `createFrameSetElement()` Creates a <frameset> element.
    `HeadElement` | `createHeadElement()` Creates a <head> element.
    `HeadingElement` | `createHElement(int n)` Creates an <h(n)> element.
    `InputElement` | `createHiddenInputElement()` Creates an <input type='hidden'> element.
    `HRElement` | `createHRElement()` Creates an <hr> element.
    `NativeEvent` | `createHtmlEvent(java.lang.String type, boolean canBubble, boolean cancelable)` Creates an event.
    `IFrameElement` | `createIFrameElement()` Creates an <iframe> element.
    `ImageElement` | `createImageElement()` Creates an <img> element.
    `InputElement` | `createImageInputElement()` Creates an <input type='image'> element.
    `ModElement` | `createInsElement()` Creates an <ins> element.
    `NativeEvent` | `createKeyCodeEvent(java.lang.String type, boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey, int keyCode)` Creates a key-code event ('keydown' or 'keyup').
    `NativeEvent` | `createKeyDownEvent(boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey, int keyCode)` Creates a 'keydown' event.
    `NativeEvent` | `createKeyDownEvent(boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey, int keyCode, int charCode)` Deprecated. as of GWT2.1 (keydown events don't have a charCode), use `createKeyDownEvent(boolean, boolean, boolean, boolean, int)`
    `NativeEvent` | `createKeyEvent(java.lang.String type, boolean canBubble, boolean cancelable, boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey, int keyCode, int charCode)` Deprecated. use `createKeyCodeEvent(String, boolean, boolean, boolean, boolean, int)` or `createKeyPressEvent(boolean, boolean, boolean, boolean, int)`
    `NativeEvent` | `createKeyPressEvent(boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey, int charCode)` Creates a 'keypress' event.
    `NativeEvent` | `createKeyPressEvent(boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey, int keyCode, int charCode)` Deprecated. as of GWT 2.1 (keypress events don't have a keyCode), use `createKeyPressEvent(boolean, boolean, boolean, boolean, int)`
    `NativeEvent` | `createKeyUpEvent(boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey, int keyCode)` Creates a 'keyup' event.
    `NativeEvent` | `createKeyUpEvent(boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey, int keyCode, int charCode)` Deprecated. as of GWT 2.1 (keyup events don't have a charCode), use `createKeyUpEvent(boolean, boolean, boolean, boolean, int)`
    `LabelElement` | `createLabelElement()` Creates a <label> element.
    `LegendElement` | `createLegendElement()` Creates a <legend> element.
    `LIElement` | `createLIElement()` Creates a <li> element.
    `LinkElement` | `createLinkElement()` Creates a <link> element.
    `NativeEvent` | `createLoadEvent()` Creates a 'load' event.
    `MapElement` | `createMapElement()` Creates a <map> element.
    `MetaElement` | `createMetaElement()` Creates a <meta> element.
    `NativeEvent` | `createMouseDownEvent(int detail, int screenX, int screenY, int clientX, int clientY, boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey, int button)` Creates a 'mousedown' event.
    `NativeEvent` | `createMouseEvent(java.lang.String type, boolean canBubble, boolean cancelable, int detail, int screenX, int screenY, int clientX, int clientY, boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey, int button, Element relatedTarget)` Creates an mouse event.
    `NativeEvent` | `createMouseMoveEvent(int detail, int screenX, int screenY, int clientX, int clientY, boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey, int button)` Creates a 'mousemove' event.
    `NativeEvent` | `createMouseOutEvent(int detail, int screenX, int screenY, int clientX, int clientY, boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey, int button, Element relatedTarget)` Creates a 'mouseout' event.
    `NativeEvent` | `createMouseOverEvent(int detail, int screenX, int screenY, int clientX, int clientY, boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey, int button, Element relatedTarget)` Creates a 'mouseover' event.
    `NativeEvent` | `createMouseUpEvent(int detail, int screenX, int screenY, int clientX, int clientY, boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey, int button)` Creates a 'mouseup' event.
    `ObjectElement` | `createObjectElement()` Creates a <object> element.
    `OListElement` | `createOLElement()` Creates an <ol> element.
    `OptGroupElement` | `createOptGroupElement()` Creates an <optgroup> element.
    `OptionElement` | `createOptionElement()` Creates an <option> element.
    `ParamElement` | `createParamElement()` Creates a <param> element.
    `InputElement` | `createPasswordInputElement()` Creates an <input type='password'> element.
    `ParagraphElement` | `createPElement()` Creates a <p> element.
    `PreElement` | `createPreElement()` Creates a <pre> element.
    `ButtonElement` | `createPushButtonElement()` Creates a <button type='button'> element.
    `QuoteElement` | `createQElement()` Creates a <q> element.
    `InputElement` | `createRadioInputElement(java.lang.String name)` Creates an <input type='radio'> element.
    `ButtonElement` | `createResetButtonElement()` Creates a <button type='reset'> element.
    `InputElement` | `createResetInputElement()` Creates an <input type='reset'> element.
    `ScriptElement` | `createScriptElement()` Creates a <script> element.
    `ScriptElement` | `createScriptElement(java.lang.String source)` Creates a <script> element.
    `NativeEvent` | `createScrollEvent()` Creates a 'scroll' event.
    `SelectElement` | `createSelectElement()` Creates a <select> element.
    `SelectElement` | `createSelectElement(boolean multiple)` Creates a <select> element.
    `SourceElement` | `createSourceElement()` Creates an <source> element.
    `SpanElement` | `createSpanElement()` Creates a <span> element.
    `StyleElement` | `createStyleElement()` Creates a <style> element.
    `ButtonElement` | `createSubmitButtonElement()` Creates a <button type='submit'> element.
    `InputElement` | `createSubmitInputElement()` Creates an <input type='submit'> element.
    `TableElement` | `createTableElement()` Creates a <table> element.
    `TableSectionElement` | `createTBodyElement()` Creates a <tbody> element.
    `TableCellElement` | `createTDElement()` Creates a <td> element.
    `TextAreaElement` | `createTextAreaElement()` Creates a <textarea> element.
    `InputElement` | `createTextInputElement()` Creates an <input type='text'> element.
    `Text` | `createTextNode(java.lang.String data)` Creates a text node.
    `TableSectionElement` | `createTFootElement()` Creates a <tfoot> element.
    `TableSectionElement` | `createTHeadElement()` Creates a <thead> element.
    `TableCellElement` | `createTHElement()` Creates a <th> element.
    `TitleElement` | `createTitleElement()` Creates a <title> element.
    `TableRowElement` | `createTRElement()` Creates a <tr> element.
    `UListElement` | `createULElement()` Creates a <ul> element.
    `java.lang.String` | `createUniqueId()` Creates an identifier guaranteed to be unique within this document.
    `VideoElement` | `createVideoElement()` Creates a <video> element.
    `void` | `enableScrolling(boolean enable)` Enables or disables scrolling of the document.
    `static Document` | `get()` Gets the default document.
    `BodyElement` | `getBody()` The element that contains the content for the document.
    `int` | `getBodyOffsetLeft()` Returns the left offset between the absolute coordinate system and the body's positioning context.
    `int` | `getBodyOffsetTop()` Returns the top offset between the absolute coordinate system and the body's positioning context.
    `int` | `getClientHeight()` The height of the document's client area.
    `int` | `getClientWidth()` The width of the document's client area.
    `java.lang.String` | `getCompatMode()` Gets the document's "compatibility mode", typically used for determining whether the document is in "quirks" or "strict" mode.
    `Element` | `getDocumentElement()` Gets the document's element.
    `java.lang.String` | `getDomain()` The domain name of the server that served the document, or null if the server cannot be identified by a domain name.
    `Element` | `getElementById(java.lang.String elementId)` Returns the `Element` whose id is given by elementId.
    `NodeList<Element>` | `getElementsByTagName(java.lang.String tagName)` Returns a `NodeList` of all the `Elements` with a given tag name in the order in which they are encountered in a preorder traversal of the document tree.
    `java.lang.String` | `getReferrer()` Returns the URI of the page that linked to this page.
    `int` | `getScrollHeight()` The height of the scrollable area of the document.
    `int` | `getScrollLeft()` The number of pixels that the document's content is scrolled from the left.
    `int` | `getScrollTop()` The number of pixels that the document's content is scrolled from the top.
    `int` | `getScrollWidth()` The width of the scrollable area of the document.
    `java.lang.String` | `getTitle()` Gets the title of a document as specified by the TITLE element in the head of the document.
    `java.lang.String` | `getURL()` Gets the absolute URI of this document.
    `(package private) Element` | `getViewportElement()` Gets the document's viewport element.
    `void` | `importNode(Node node, boolean deep)` Imports a node from another document to this document.
    `boolean` | `isCSS1Compat()` Determines whether the document's "compatMode" is "CSS1Compat".
    `void` | `setScrollLeft(int left)` Sets the number of pixels that the document's content is scrolled from the left.
    `void` | `setScrollTop(int top)` Sets the number of pixels that the document's content is scrolled from the top.
    `void` | `setTitle(java.lang.String title)` Sets the title of a document as specified by the TITLE element in the head of the document.

    - ### Methods inherited from class com.google.gwt.dom.client.Node

      `appendChild, as, cloneNode, getChild, getChildCount, getChildNodes, getFirstChild, getLastChild, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentElement, getParentNode, getPreviousSibling, hasChildNodes, hasParentElement, insertAfter, insertBefore, insertFirst, is, isOrHasChild, removeChild, removeFromParent, replaceChild, setNodeValue`

    - ### Methods inherited from class com.google.gwt.core.client.JavaScriptObject

      `cast, createArray, createFunction, createObject, equals, hashCode, toSource, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### Document

          protected Document()

  - ### Method Detail

    - #### get

          public static Document get()

      Gets the default document. This is the document in which the module is running.
      Returns:
        the default document

    - #### createAnchorElement

          public final AnchorElement createAnchorElement()

      Creates an <a> element.
      Returns:
        the newly created element

    - #### createAreaElement

          public final AreaElement createAreaElement()

      Creates an <area> element.
      Returns:
        the newly created element

    - #### createAudioElement

          public final AudioElement createAudioElement()

      Creates an <audio> element.
      Returns:
        the newly created element

    - #### createBaseElement

          public final BaseElement createBaseElement()

      Creates a <base> element.
      Returns:
        the newly created element

    - #### createBlockQuoteElement

          public final QuoteElement createBlockQuoteElement()

      Creates a <blockquote> element.
      Returns:
        the newly created element

    - #### createBlurEvent

          public final NativeEvent createBlurEvent()

      Creates a 'blur' event.

    - #### createBRElement

          public final BRElement createBRElement()

      Creates a <br> element.
      Returns:
        the newly created element

    - #### createButtonElement

          @Deprecated
          public final ButtonElement createButtonElement()

      Deprecated. use `createPushButtonElement()`, `createResetButtonElement()` or `createSubmitButtonElement()` instead.
      Creates a <button> element.

      Warning! The button type is actually implementation-dependent and is read-only.

      Returns:
        the newly created element

    - #### createButtonInputElement

          public final InputElement createButtonInputElement()

      Creates an <input type='button'> element.
      Returns:
        the newly created element

    - #### createCanvasElement

          public final CanvasElement createCanvasElement()

      Creates a <canvas> element.
      Returns:
        the newly created element

    - #### createCaptionElement

          public final TableCaptionElement createCaptionElement()

      Creates a <caption> element.
      Returns:
        the newly created element

    - #### createChangeEvent

          public final NativeEvent createChangeEvent()

      Creates a 'change' event.

    - #### createCheckInputElement

          public final InputElement createCheckInputElement()

      Creates an <input type='checkbox'> element.
      Returns:
        the newly created element

    - #### createClickEvent

          public final NativeEvent createClickEvent(int detail,
                                     int screenX,
                                     int screenY,
                                     int clientX,
                                     int clientY,
                                     boolean ctrlKey,
                                     boolean altKey,
                                     boolean shiftKey,
                                     boolean metaKey)

      Creates a 'click' event.

      Note that this method does not allow the event's 'button' field to be specified, because not all browsers support it reliably for click events.

      Parameters:
        `detail` - the event's detail property
        `screenX` - the event's screen-relative x-position
        `screenY` - the event's screen-relative y-position
        `clientX` - the event's client-relative x-position
        `clientY` - the event's client-relative y-position
        `ctrlKey` - `true` if the ctrl key is depressed
        `altKey` - `true` if the alt key is depressed
        `shiftKey` - `true` if the shift key is depressed
        `metaKey` - `true` if the meta key is depressed
      Returns:
        the event object

    - #### createColElement

          public final TableColElement createColElement()

      Creates a <col> element.
      Returns:
        the newly created element

    - #### createColGroupElement

          public final TableColElement createColGroupElement()

      Creates a <colgroup> element.
      Returns:
        the newly created element

    - #### createContextMenuEvent

          public final NativeEvent createContextMenuEvent()

      Creates a 'contextmenu' event. Note: Contextmenu events will not dispatch properly on Firefox 2 and earlier.
      Returns:
        the event object

    - #### createDblClickEvent

          public final NativeEvent createDblClickEvent(int detail,
                                        int screenX,
                                        int screenY,
                                        int clientX,
                                        int clientY,
                                        boolean ctrlKey,
                                        boolean altKey,
                                        boolean shiftKey,
                                        boolean metaKey)

      Creates a 'dblclick' event.

      Note that this method does not allow the event's 'button' field to be specified, because not all browsers support it reliably for click events.

      Note that on some browsers, this may cause 'click' events to be synthesized as well.

      Parameters:
        `detail` - the event's detail property
        `screenX` - the event's screen-relative x-position
        `screenY` - the event's screen-relative y-position
        `clientX` - the event's client-relative x-position
        `clientY` - the event's client-relative y-position
        `ctrlKey` - `true` if the ctrl key is depressed
        `altKey` - `true` if the alt key is depressed
        `shiftKey` - `true` if the shift key is depressed
        `metaKey` - `true` if the meta key is depressed
      Returns:
        the event object

    - #### createDelElement

          public final ModElement createDelElement()

      Creates a <del> element.
      Returns:
        the newly created element

    - #### createDivElement

          public final DivElement createDivElement()

      Creates a <div> element.
      Returns:
        the newly created element

    - #### createDLElement

          public final DListElement createDLElement()

      Creates a <dl> element.
      Returns:
        the newly created element

    - #### createElement

          public final Element createElement(java.lang.String tagName)

      Creates a new element.
      Parameters:
        `tagName` - the tag name of the element to be created
      Returns:
        the newly created element

    - #### createErrorEvent

          public final NativeEvent createErrorEvent()

      Creates an 'error' event.
      Returns:
        the event object

    - #### createFieldSetElement

          public final FieldSetElement createFieldSetElement()

      Creates a <fieldset> element.
      Returns:
        the newly created element

    - #### createFileInputElement

          public final InputElement createFileInputElement()

      Creates an <input type='file'> element.
      Returns:
        the newly created element

    - #### createFocusEvent

          public final NativeEvent createFocusEvent()

      Creates a 'focus' event.
      Returns:
        the event object

    - #### createFormElement

          public final FormElement createFormElement()

      Creates a <form> element.
      Returns:
        the newly created element

    - #### createFrameElement

          public final FrameElement createFrameElement()

      Creates a <frame> element.
      Returns:
        the newly created element

    - #### createFrameSetElement

          public final FrameSetElement createFrameSetElement()

      Creates a <frameset> element.
      Returns:
        the newly created element

    - #### createHeadElement

          public final HeadElement createHeadElement()

      Creates a <head> element.
      Returns:
        the newly created element

    - #### createHElement

          public final HeadingElement createHElement(int n)

      Creates an <h(n)> element.
      Parameters:
        `n` - the type of heading, from 1 to 6 inclusive
      Returns:
        the newly created element

    - #### createHiddenInputElement

          public final InputElement createHiddenInputElement()

      Creates an <input type='hidden'> element.
      Returns:
        the newly created element

    - #### createHRElement

          public final HRElement createHRElement()

      Creates an <hr> element.
      Returns:
        the newly created element

    - #### createHtmlEvent

          public final NativeEvent createHtmlEvent(java.lang.String type,
                                    boolean canBubble,
                                    boolean cancelable)

      Creates an event.

      While this method may be used to create events directly, it is generally preferable to use existing helper methods such as `createFocusEvent()`.

      Also, note that on Internet Explorer the 'canBubble' and 'cancelable' arguments will be ignored (the event's behavior is inferred by the browser based upon its type).

      Parameters:
        `type` - the type of event (e.g., BrowserEvents.FOCUS, BrowserEvents.LOAD, etc)
        `canBubble` - `true` if the event should bubble
        `cancelable` - `true` if the event should be cancelable
      Returns:
        the event object

    - #### createIFrameElement

          public final IFrameElement createIFrameElement()

      Creates an <iframe> element.
      Returns:
        the newly created element

    - #### createImageElement

          public final ImageElement createImageElement()

      Creates an <img> element.
      Returns:
        the newly created element

    - #### createImageInputElement

          public final InputElement createImageInputElement()

      Creates an <input type='image'> element.
      Returns:
        the newly created element

    - #### createInsElement

          public final ModElement createInsElement()

      Creates an <ins> element.
      Returns:
        the newly created element

    - #### createKeyCodeEvent

          public final NativeEvent createKeyCodeEvent(java.lang.String type,
                                       boolean ctrlKey,
                                       boolean altKey,
                                       boolean shiftKey,
                                       boolean metaKey,
                                       int keyCode)

      Creates a key-code event ('keydown' or 'keyup').

      While this method may be used to create events directly, it is generally preferable to use existing helper methods such as `createKeyDownEvent(boolean, boolean, boolean, boolean, int)` or `createKeyUpEvent(boolean, boolean, boolean, boolean, int)`.

      Parameters:
        `type` - the type of event (e.g., BrowserEvents.KEYDOWN, BrowserEvents.KEYPRESS, etc)
        `ctrlKey` - `true` if the ctrl key is depressed
        `altKey` - `true` if the alt key is depressed
        `shiftKey` - `true` if the shift key is depressed
        `metaKey` - `true` if the meta key is depressed
        `keyCode` - the key-code to be set on the event
      Returns:
        the event object

    - #### createKeyDownEvent

          public final NativeEvent createKeyDownEvent(boolean ctrlKey,
                                       boolean altKey,
                                       boolean shiftKey,
                                       boolean metaKey,
                                       int keyCode)

      Creates a 'keydown' event.
      Parameters:
        `ctrlKey` - `true` if the ctrl key is depressed
        `altKey` - `true` if the alt key is depressed
        `shiftKey` - `true` if the shift key is depressed
        `metaKey` - `true` if the meta key is depressed
        `keyCode` - the key-code to be set on the event
      Returns:
        the event object

    - #### createKeyDownEvent

          @Deprecated
          public final NativeEvent createKeyDownEvent(boolean ctrlKey,
                                                  boolean altKey,
                                                  boolean shiftKey,
                                                  boolean metaKey,
                                                  int keyCode,
                                                  int charCode)

      Deprecated. as of GWT2.1 (keydown events don't have a charCode), use `createKeyDownEvent(boolean, boolean, boolean, boolean, int)`
      Creates a 'keydown' event.
      Parameters:
        `ctrlKey` - `true` if the ctrl key is depressed
        `altKey` - `true` if the alt key is depressed
        `shiftKey` - `true` if the shift key is depressed
        `metaKey` - `true` if the meta key is depressed
        `keyCode` - the key-code to be set on the event
        `charCode` - the char-code to be set on the event
      Returns:
        the event object

    - #### createKeyEvent

          @Deprecated
          public final NativeEvent createKeyEvent(java.lang.String type,
                                              boolean canBubble,
                                              boolean cancelable,
                                              boolean ctrlKey,
                                              boolean altKey,
                                              boolean shiftKey,
                                              boolean metaKey,
                                              int keyCode,
                                              int charCode)

      Deprecated. use `createKeyCodeEvent(String, boolean, boolean, boolean, boolean, int)` or `createKeyPressEvent(boolean, boolean, boolean, boolean, int)`
      Creates a key event.

      While this method may be used to create events directly, it is generally preferable to use existing helper methods such as `createKeyPressEvent(boolean, boolean, boolean, boolean, int, int)` .

      Also, note that on Internet Explorer the 'canBubble' and 'cancelable' arguments will be ignored (the event's behavior is inferred by the browser based upon its type).

      Parameters:
        `type` - the type of event (e.g., BrowserEvents.KEYDOWN, BrowserEvents.KEYPRESS, etc)
        `canBubble` - `true` if the event should bubble
        `cancelable` - `true` if the event should be cancelable
        `ctrlKey` - `true` if the ctrl key is depressed
        `altKey` - `true` if the alt key is depressed
        `shiftKey` - `true` if the shift key is depressed
        `metaKey` - `true` if the meta key is depressed
        `keyCode` - the key-code to be set on the event
        `charCode` - the char-code to be set on the event
      Returns:
        the event object

    - #### createKeyPressEvent

          public final NativeEvent createKeyPressEvent(boolean ctrlKey,
                                        boolean altKey,
                                        boolean shiftKey,
                                        boolean metaKey,
                                        int charCode)

      Creates a 'keypress' event.
      Parameters:
        `ctrlKey` - `true` if the ctrl key is depressed
        `altKey` - `true` if the alt key is depressed
        `shiftKey` - `true` if the shift key is depressed
        `metaKey` - `true` if the meta key is depressed
        `charCode` - the char-code to be set on the event
      Returns:
        the event object

    - #### createKeyPressEvent

          @Deprecated
          public final NativeEvent createKeyPressEvent(boolean ctrlKey,
                                                   boolean altKey,
                                                   boolean shiftKey,
                                                   boolean metaKey,
                                                   int keyCode,
                                                   int charCode)

      Deprecated. as of GWT 2.1 (keypress events don't have a keyCode), use `createKeyPressEvent(boolean, boolean, boolean, boolean, int)`
      Creates a 'keypress' event.
      Parameters:
        `ctrlKey` - `true` if the ctrl key is depressed
        `altKey` - `true` if the alt key is depressed
        `shiftKey` - `true` if the shift key is depressed
        `metaKey` - `true` if the meta key is depressed
        `keyCode` - the key-code to be set on the event
        `charCode` - the char-code to be set on the event
      Returns:
        the event object

    - #### createKeyUpEvent

          public final NativeEvent createKeyUpEvent(boolean ctrlKey,
                                     boolean altKey,
                                     boolean shiftKey,
                                     boolean metaKey,
                                     int keyCode)

      Creates a 'keyup' event.
      Parameters:
        `ctrlKey` - `true` if the ctrl key is depressed
        `altKey` - `true` if the alt key is depressed
        `shiftKey` - `true` if the shift key is depressed
        `metaKey` - `true` if the meta key is depressed
        `keyCode` - the key-code to be set on the event
      Returns:
        the event object

    - #### createKeyUpEvent

          @Deprecated
          public final NativeEvent createKeyUpEvent(boolean ctrlKey,
                                                boolean altKey,
                                                boolean shiftKey,
                                                boolean metaKey,
                                                int keyCode,
                                                int charCode)

      Deprecated. as of GWT 2.1 (keyup events don't have a charCode), use `createKeyUpEvent(boolean, boolean, boolean, boolean, int)`
      Creates a 'keyup' event.
      Parameters:
        `ctrlKey` - `true` if the ctrl key is depressed
        `altKey` - `true` if the alt key is depressed
        `shiftKey` - `true` if the shift key is depressed
        `metaKey` - `true` if the meta key is depressed
        `keyCode` - the key-code to be set on the event
        `charCode` - the char-code to be set on the event
      Returns:
        the event object

    - #### createLabelElement

          public final LabelElement createLabelElement()

      Creates a <label> element.
      Returns:
        the newly created element

    - #### createLegendElement

          public final LegendElement createLegendElement()

      Creates a <legend> element.
      Returns:
        the newly created element

    - #### createLIElement

          public final LIElement createLIElement()

      Creates a <li> element.
      Returns:
        the newly created element

    - #### createLinkElement

          public final LinkElement createLinkElement()

      Creates a <link> element.
      Returns:
        the newly created element

    - #### createLoadEvent

          public final NativeEvent createLoadEvent()

      Creates a 'load' event.
      Returns:
        the event object

    - #### createMapElement

          public final MapElement createMapElement()

      Creates a <map> element.
      Returns:
        the newly created element

    - #### createMetaElement

          public final MetaElement createMetaElement()

      Creates a <meta> element.
      Returns:
        the newly created element

    - #### createMouseDownEvent

          public final NativeEvent createMouseDownEvent(int detail,
                                         int screenX,
                                         int screenY,
                                         int clientX,
                                         int clientY,
                                         boolean ctrlKey,
                                         boolean altKey,
                                         boolean shiftKey,
                                         boolean metaKey,
                                         int button)

      Creates a 'mousedown' event.
      Parameters:
        `detail` - the event's detail property
        `screenX` - the event's screen-relative x-position
        `screenY` - the event's screen-relative y-position
        `clientX` - the event's client-relative x-position
        `clientY` - the event's client-relative y-position
        `ctrlKey` - `true` if the ctrl key is depressed
        `altKey` - `true` if the alt key is depressed
        `shiftKey` - `true` if the shift key is depressed
        `metaKey` - `true` if the meta key is depressed
        `button` - the event's button property (values from `NativeEvent.BUTTON_LEFT` et al)
      Returns:
        the event object

    - #### createMouseEvent

          public final NativeEvent createMouseEvent(java.lang.String type,
                                     boolean canBubble,
                                     boolean cancelable,
                                     int detail,
                                     int screenX,
                                     int screenY,
                                     int clientX,
                                     int clientY,
                                     boolean ctrlKey,
                                     boolean altKey,
                                     boolean shiftKey,
                                     boolean metaKey,
                                     int button,
                                     Element relatedTarget)

      Creates an mouse event.

      While this method may be used to create events directly, it is generally preferable to use existing helper methods such as `createClickEvent(int, int, int, int, int, boolean, boolean, boolean, boolean)` .

      Also, note that on Internet Explorer the 'canBubble' and 'cancelable' arguments will be ignored (the event's behavior is inferred by the browser based upon its type).

      Parameters:
        `type` - the type of event (e.g., BrowserEvents.FOCUS, BrowserEvents.LOAD, etc)
        `canBubble` - `true` if the event should bubble
        `cancelable` - `true` if the event should be cancelable
        `detail` - the event's detail property
        `screenX` - the event's screen-relative x-position
        `screenY` - the event's screen-relative y-position
        `clientX` - the event's client-relative x-position
        `clientY` - the event's client-relative y-position
        `ctrlKey` - `true` if the ctrl key is depressed
        `altKey` - `true` if the alt key is depressed
        `shiftKey` - `true` if the shift key is depressed
        `metaKey` - `true` if the meta key is depressed
        `button` - the event's button property (values from `NativeEvent.BUTTON_LEFT` et al)
        `relatedTarget` - the event's related target (only relevant for mouseover and mouseout events)
      Returns:
        the event object

    - #### createMouseMoveEvent

          public final NativeEvent createMouseMoveEvent(int detail,
                                         int screenX,
                                         int screenY,
                                         int clientX,
                                         int clientY,
                                         boolean ctrlKey,
                                         boolean altKey,
                                         boolean shiftKey,
                                         boolean metaKey,
                                         int button)

      Creates a 'mousemove' event.
      Parameters:
        `detail` - the event's detail property
        `screenX` - the event's screen-relative x-position
        `screenY` - the event's screen-relative y-position
        `clientX` - the event's client-relative x-position
        `clientY` - the event's client-relative y-position
        `ctrlKey` - `true` if the ctrl key is depressed
        `altKey` - `true` if the alt key is depressed
        `shiftKey` - `true` if the shift key is depressed
        `metaKey` - `true` if the meta key is depressed
        `button` - the event's button property (values from `NativeEvent.BUTTON_LEFT` et al)
      Returns:
        the event object

    - #### createMouseOutEvent

          public final NativeEvent createMouseOutEvent(int detail,
                                        int screenX,
                                        int screenY,
                                        int clientX,
                                        int clientY,
                                        boolean ctrlKey,
                                        boolean altKey,
                                        boolean shiftKey,
                                        boolean metaKey,
                                        int button,
                                        Element relatedTarget)

      Creates a 'mouseout' event. Note: The 'relatedTarget' parameter will be ignored on Firefox 2 and earlier.
      Parameters:
        `detail` - the event's detail property
        `screenX` - the event's screen-relative x-position
        `screenY` - the event's screen-relative y-position
        `clientX` - the event's client-relative x-position
        `clientY` - the event's client-relative y-position
        `ctrlKey` - `true` if the ctrl key is depressed
        `altKey` - `true` if the alt key is depressed
        `shiftKey` - `true` if the shift key is depressed
        `metaKey` - `true` if the meta key is depressed
        `button` - the event's button property (values from `NativeEvent.BUTTON_LEFT` et al)
        `relatedTarget` - the event's related target
      Returns:
        the event object

    - #### createMouseOverEvent

          public final NativeEvent createMouseOverEvent(int detail,
                                         int screenX,
                                         int screenY,
                                         int clientX,
                                         int clientY,
                                         boolean ctrlKey,
                                         boolean altKey,
                                         boolean shiftKey,
                                         boolean metaKey,
                                         int button,
                                         Element relatedTarget)

      Creates a 'mouseover' event. Note: The 'relatedTarget' parameter will be ignored on Firefox 2 and earlier.
      Parameters:
        `detail` - the event's detail property
        `screenX` - the event's screen-relative x-position
        `screenY` - the event's screen-relative y-position
        `clientX` - the event's client-relative x-position
        `clientY` - the event's client-relative y-position
        `ctrlKey` - `true` if the ctrl key is depressed
        `altKey` - `true` if the alt key is depressed
        `shiftKey` - `true` if the shift key is depressed
        `metaKey` - `true` if the meta key is depressed
        `button` - the event's button property (values from `NativeEvent.BUTTON_LEFT` et al)
        `relatedTarget` - the event's related target
      Returns:
        the event object

    - #### createMouseUpEvent

          public final NativeEvent createMouseUpEvent(int detail,
                                       int screenX,
                                       int screenY,
                                       int clientX,
                                       int clientY,
                                       boolean ctrlKey,
                                       boolean altKey,
                                       boolean shiftKey,
                                       boolean metaKey,
                                       int button)

      Creates a 'mouseup' event.
      Parameters:
        `detail` - the event's detail property
        `screenX` - the event's screen-relative x-position
        `screenY` - the event's screen-relative y-position
        `clientX` - the event's client-relative x-position
        `clientY` - the event's client-relative y-position
        `ctrlKey` - `true` if the ctrl key is depressed
        `altKey` - `true` if the alt key is depressed
        `shiftKey` - `true` if the shift key is depressed
        `metaKey` - `true` if the meta key is depressed
        `button` - the event's button property (values from `NativeEvent.BUTTON_LEFT` et al)
      Returns:
        the event object

    - #### createObjectElement

          public final ObjectElement createObjectElement()

      Creates a <object> element.
      Returns:
        the newly created element

    - #### createOLElement

          public final OListElement createOLElement()

      Creates an <ol> element.
      Returns:
        the newly created element

    - #### createOptGroupElement

          public final OptGroupElement createOptGroupElement()

      Creates an <optgroup> element.
      Returns:
        the newly created element

    - #### createOptionElement

          public final OptionElement createOptionElement()

      Creates an <option> element.
      Returns:
        the newly created element

    - #### createParamElement

          public final ParamElement createParamElement()

      Creates a <param> element.
      Returns:
        the newly created element

    - #### createPasswordInputElement

          public final InputElement createPasswordInputElement()

      Creates an <input type='password'> element.
      Returns:
        the newly created element

    - #### createPElement

          public final ParagraphElement createPElement()

      Creates a <p> element.
      Returns:
        the newly created element

    - #### createPreElement

          public final PreElement createPreElement()

      Creates a <pre> element.
      Returns:
        the newly created element

    - #### createPushButtonElement

          public final ButtonElement createPushButtonElement()

      Creates a <button type='button'> element.
      Returns:
        the newly created element

    - #### createQElement

          public final QuoteElement createQElement()

      Creates a <q> element.
      Returns:
        the newly created element

    - #### createRadioInputElement

          public final InputElement createRadioInputElement(java.lang.String name)

      Creates an <input type='radio'> element.
      Parameters:
        `name` - the name of the radio input (used for grouping)
      Returns:
        the newly created element

    - #### createResetButtonElement

          public final ButtonElement createResetButtonElement()

      Creates a <button type='reset'> element.
      Returns:
        the newly created element

    - #### createResetInputElement

          public final InputElement createResetInputElement()

      Creates an <input type='reset'> element.
      Returns:
        the newly created element

    - #### createScriptElement

          public final ScriptElement createScriptElement()

      Creates a <script> element.
      Returns:
        the newly created element

    - #### createScriptElement

          public final ScriptElement createScriptElement(java.lang.String source)

      Creates a <script> element.
      Parameters:
        `source` - the source code to set inside the element
      Returns:
        the newly created element

    - #### createScrollEvent

          public final NativeEvent createScrollEvent()

      Creates a 'scroll' event. Note: Contextmenu events will not dispatch properly on Firefox 2 and earlier.
      Returns:
        the event object

    - #### createSelectElement

          public final SelectElement createSelectElement()

      Creates a <select> element.
      Returns:
        the newly created element

    - #### createSelectElement

          public final SelectElement createSelectElement(boolean multiple)

      Creates a <select> element.
      Parameters:
        `multiple` - `true` to allow multiple-selection
      Returns:
        the newly created element

    - #### createSourceElement

          public final SourceElement createSourceElement()

      Creates an <source> element.
      Returns:
        the newly created element

    - #### createSpanElement

          public final SpanElement createSpanElement()

      Creates a <span> element.
      Returns:
        the newly created element

    - #### createStyleElement

          public final StyleElement createStyleElement()

      Creates a <style> element.
      Returns:
        the newly created element

    - #### createSubmitButtonElement

          public final ButtonElement createSubmitButtonElement()

      Creates a <button type='submit'> element.
      Returns:
        the newly created element

    - #### createSubmitInputElement

          public final InputElement createSubmitInputElement()

      Creates an <input type='submit'> element.
      Returns:
        the newly created element

    - #### createTableElement

          public final TableElement createTableElement()

      Creates a <table> element.
      Returns:
        the newly created element

    - #### createTBodyElement

          public final TableSectionElement createTBodyElement()

      Creates a <tbody> element.
      Returns:
        the newly created element

    - #### createTDElement

          public final TableCellElement createTDElement()

      Creates a <td> element.
      Returns:
        the newly created element

    - #### createTextAreaElement

          public final TextAreaElement createTextAreaElement()

      Creates a <textarea> element.
      Returns:
        the newly created element

    - #### createTextInputElement

          public final InputElement createTextInputElement()

      Creates an <input type='text'> element.
      Returns:
        the newly created element

    - #### createTextNode

          public final Text createTextNode(java.lang.String data)

      Creates a text node.
      Parameters:
        `data` - the text node's initial text
      Returns:
        the newly created element

    - #### createTFootElement

          public final TableSectionElement createTFootElement()

      Creates a <tfoot> element.
      Returns:
        the newly created element

    - #### createTHeadElement

          public final TableSectionElement createTHeadElement()

      Creates a <thead> element.
      Returns:
        the newly created element

    - #### createTHElement

          public final TableCellElement createTHElement()

      Creates a <th> element.
      Returns:
        the newly created element

    - #### createTitleElement

          public final TitleElement createTitleElement()

      Creates a <title> element.
      Returns:
        the newly created element

    - #### createTRElement

          public final TableRowElement createTRElement()

      Creates a <tr> element.
      Returns:
        the newly created element

    - #### createULElement

          public final UListElement createULElement()

      Creates a <ul> element.
      Returns:
        the newly created element

    - #### createUniqueId

          public final java.lang.String createUniqueId()

      Creates an identifier guaranteed to be unique within this document. This is useful for allocating element id's.
      Returns:
        a unique identifier

    - #### createVideoElement

          public final VideoElement createVideoElement()

      Creates a <video> element.
      Returns:
        the newly created element

    - #### enableScrolling

          public final void enableScrolling(boolean enable)

      Enables or disables scrolling of the document.
      Parameters:
        `enable` - whether scrolling should be enabled or disabled

    - #### getBody

          public final BodyElement getBody()

      The element that contains the content for the document. In documents with BODY contents, returns the BODY element.
      Returns:
        the document's body

    - #### getBodyOffsetLeft

          public final int getBodyOffsetLeft()

      Returns the left offset between the absolute coordinate system and the body's positioning context. This method is useful for positioning children of the body element in absolute coordinates.

      For example, to position an element directly under the mouse cursor (assuming you are handling a mouse event), do the following:

           Event event;
           Document doc;
           DivElement child;  // assume absolutely-positioned child of the body

           // Get the event location in absolute coordinates.
           int absX = event.getClientX() + Window.getScrollLeft();
           int absY = event.getClientY() + Window.getScrollTop();

           // Position the child element, adjusting for the difference between the
           // absolute coordinate system and the body's positioning coordinates.
           child.getStyle().setPropertyPx("left", absX - doc.getBodyOffsetLeft());
           child.getStyle().setPropertyPx("top", absY - doc.getBodyOffsetTop());

      Returns:
        the left offset of the body's positioning coordinate system

    - #### getBodyOffsetTop

          public final int getBodyOffsetTop()

      Returns the top offset between the absolute coordinate system and the body's positioning context. This method is useful for positioning children of the body element in absolute coordinates.
      Returns:
        the top offset of the body's positioning coordinate system
      See Also:
        `getBodyOffsetLeft()`

    - #### getClientHeight

          public final int getClientHeight()

      The height of the document's client area.
      Returns:
        the document's client height

    - #### getClientWidth

          public final int getClientWidth()

      The width of the document's client area.
      Returns:
        the document's client width

    - #### getCompatMode

          public final java.lang.String getCompatMode()

      Gets the document's "compatibility mode", typically used for determining whether the document is in "quirks" or "strict" mode.
      Returns:
        one of "BackCompat" or "CSS1Compat"

    - #### getDocumentElement

          public final Element getDocumentElement()

      Gets the document's element. This is typically the <html> element.
      Returns:
        the document element

    - #### getDomain

          public final java.lang.String getDomain()

      The domain name of the server that served the document, or null if the server cannot be identified by a domain name.
      Returns:
        the document's domain, or `null` if none exists

    - #### getElementById

          public final Element getElementById(java.lang.String elementId)

      Returns the `Element` whose id is given by elementId. If no such element exists, returns null. Behavior is not defined if more than one element has this id.
      Parameters:
        `elementId` - the unique id value for an element
      Returns:
        the matching element

    - #### getElementsByTagName

          public final NodeList<Element> getElementsByTagName(java.lang.String tagName)

      Returns a `NodeList` of all the `Elements` with a given tag name in the order in which they are encountered in a preorder traversal of the document tree.
      Parameters:
        `tagName` - the name of the tag to match on (the special value `"*"` matches all tags)
      Returns:
        a list containing all the matched elements

    - #### getReferrer

          public final java.lang.String getReferrer()

      Returns the URI of the page that linked to this page. The value is an empty string if the user navigated to the page directly (not through a link, but, for example, via a bookmark).
      Returns:
        the referrer URI

    - #### getScrollHeight

          public final int getScrollHeight()

      The height of the scrollable area of the document.
      Returns:
        the height of the document's scrollable area

    - #### getScrollLeft

          public final int getScrollLeft()

      The number of pixels that the document's content is scrolled from the left.

      If the document is in RTL mode, this method will return a negative value of the number of pixels scrolled from the right.

      Returns:
        the document's left scroll position

    - #### getScrollTop

          public final int getScrollTop()

      The number of pixels that the document's content is scrolled from the top.
      Returns:
        the document's top scroll position

    - #### getScrollWidth

          public final int getScrollWidth()

      The width of the scrollable area of the document.
      Returns:
        the width of the document's scrollable area

    - #### getTitle

          public final java.lang.String getTitle()

      Gets the title of a document as specified by the TITLE element in the head of the document.
      Returns:
        the document's title

    - #### getURL

          public final java.lang.String getURL()

      Gets the absolute URI of this document.
      Returns:
        the document URI

    - #### importNode

          public final void importNode(Node node,
                        boolean deep)

      Imports a node from another document to this document. The returned node has no parent; (`Node.getParentNode()` is null). The source node is not altered or removed from the original document; this method creates a new copy of the source node. For all nodes, importing a node creates a node object owned by the importing document, with attribute values identical to the source node's nodeName and nodeType, plus the attributes related to namespaces (prefix, localName, and namespaceURI). As in the cloneNode operation on a Node, the source node is not altered. Additional information is copied as appropriate to the nodeType, attempting to mirror the behavior expected if a fragment of XML or HTML source was copied from one document to another, recognizing that the two documents may have different DTDs in the XML case.
      Parameters:
        `node` - the node to import
        `deep` - If `true`, recursively import the subtree under the specified node; if `false`, import only the node itself, as explained above

    - #### isCSS1Compat

          public final boolean isCSS1Compat()

      Determines whether the document's "compatMode" is "CSS1Compat". This is normally described as "strict" mode.
      Returns:
        `true` if the document is in CSS1Compat mode

    - #### setScrollLeft

          public final void setScrollLeft(int left)

      Sets the number of pixels that the document's content is scrolled from the left.
      Parameters:
        `left` - the document's left scroll position

    - #### setScrollTop

          public final void setScrollTop(int top)

      Sets the number of pixels that the document's content is scrolled from the top.
      Parameters:
        `top` - the document's top scroll position

    - #### setTitle

          public final void setTitle(java.lang.String title)

      Sets the title of a document as specified by the TITLE element in the head of the document.
      Parameters:
        `title` - the document's new title

    - #### getViewportElement

          final Element getViewportElement()

      Gets the document's viewport element. This is the element that should be used to for scrolling and client-area measurement. In quirks-mode it is the <body> element, while in standards-mode it is the <html> element. This is package-protected because the viewport is
      Returns:
        the document's viewport element