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
`protected` `Document()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
`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.
`NativeEvent` `createInputEvent()` Creates an 'input' event.
`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)` Deprecated.
`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.
`HeadElement` `getHead()` The element that contains metadata about the document, including links to or definitions of scripts and style sheets.
`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, removeAllChildren, removeChild, removeFromParent, replaceChild, setNodeValue`

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

`cast, createArray, 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

#### createInputEvent

    public final NativeEvent createInputEvent()

Creates an 'input' event.

#### 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

    @Deprecated
    public final SelectElement createSelectElement(boolean multiple)

Deprecated.
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

#### getHead

    public final HeadElement getHead()

The element that contains metadata about the document, including links to or definitions of scripts and style sheets.

Returns:
  the document's head

#### 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