Package com.smartgwt.client.util

# Class Page

java.lang.Object
com.smartgwt.client.util.Page

public class Page extends Object
Provides information about the page you're loaded in. We define "page" here to be roughly equivalent to the browser window or frame the libraries have been loaded in.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Page()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static HandlerRegistration`
  `addOrientationChangeHandler(OrientationChangeHandler handler)`
  `static void`
  `checkBrowserAndRedirect()`
  Deprecated.
  As discussed in `BrowserSupport`, developers are recommended to consider which browsers they wish to support within their specific application rather than relying on framework supported browser detection.
  `static void`
  `checkBrowserAndRedirect(String URL)`
  Deprecated.
  As discussed in `BrowserSupport`, developers are recommended to consider which browsers they wish to support within their specific application rather than relying on framework supported browser detection.
  `static String`
  `getAppDir()`
  Returns the base URL of the application, which is the page URL minus the last non-directory path component.
  `static void`
  `getAppFilesDir()`
  Returns the directory for application-specific files (other than images).
  `static void`
  `getAppFilesDir(String URL)`
  Returns the directory for application-specific files (other than images).
  `static String`
  `getAppImgDir()`
  Return the directory for app-specific images.
  `static void`
  `getDevicePixelRatio()`
  Returns the current ratio of the resolution in physical pixels to the resolution in CSS pixels in the browser, known as the device pixel ratio.
  `static int`
  `getHeight()`
  Get the height of the visible portion of the window, not including browser chrome or the scrollbar area.
  `static String`
  `getImgURL(String src)`
  Return the full URL for app-specific or skin image.
  `static String`
  `getImgURL(String src, String imgDir)`
  Return the full URL for app-specific or skin image.
  `static String`
  `getIsomorphicDir()`
  Return the root directory for Isomorphic-specific files.
  `static String`
  `getIsomorphicDocsDir()`
  Return the root directory for Isomorphic documentation and example files.
  `static String`
  `getIsomorphicToolsDir()`
  Return the root directory for Isomorphic-supplied tools dir.
  `static PageOrientation`
  `getOrientation()`
  Is the current page wider than it is tall ("landscape" orientation) or the reverse ("portrait" orientation).
  `static String`
  `getSampleImgDir()`
  Return the dir for Showcase-sample images which differ by skin.
  `static String`
  `getSamplePhotoDir()`
  Return the dir for skin-specific sample-photos in the product Showcase.
  `static String`
  `getSamplePhotoDir(String URL)`
  Return the dir for skin-specific sample-photos in the product Showcase.
  `static String`
  `getSampleThumbnailDir()`
  Return the dir for skin-specific sample-thumbnails in the product Showcase.
  `static String`
  `getSampleThumbnailDir(String URL)`
  Return the dir for skin-specific sample-thumbnails in the product Showcase.
  `static int`
  `getScreenHeight()`
  Get the height of the user's screen, in pixels.
  `static int`
  `getScreenWidth()`
  Get the width of the user's screen, in pixels.
  `static int`
  `getScrollHeight()`
  Get the height of the window contents as they have been drawn.
  `static int`
  `getScrollLeft()`
  Get the amount that the browser window has been scrolled horizontally.
  `static int`
  `getScrollTop()`
  Get the amount that the browser window has been scrolled vertically.
  `static int`
  `getScrollWidth()`
  Get the width of the window contents as they have been drawn.
  `static String`
  `getSkinDir()`
  Return the directory for media that's part of the skin
  `static String`
  `getSkinImgDir()`
  Return the directory for a skin image.
  `static String`
  `getSkinImgDir(String imgDir)`
  Return the directory for a skin image.
  `static String`
  `getToolsImgDir()`
  Return the images directory used by Isomorphic-supplied tools.
  `static String`
  `getUnsupportedBrowserPromptString()`
  Returns the text for the prompt shown to user from `checkBrowserAndRedirect()` if they are accessing this page in an unsupported browser and `unsupportedBrowserAction` is set to `"confirm"`.
  `static String`
  `getURL(String fileName)`
  Return a full URL for a relative path that uses a special prefix such as "[APPFILES]" or "[SKIN]".
  `static int`
  `getWidth()`
  Get the width of the visible portion of the window, not including browser chrome or the scrollbar area.
  `static Boolean`
  `isAddVersionToSkinCSS()`
  Returns true if add version to skin CSS is currently turned on.
  `static Boolean`
  `isDarkSkin()`
  Returns true if the current skin has a dark background and light text, false otherwise.
  `static Boolean`
  `isLoaded()`
  Has the page finished loading?
  `static Boolean`
  `isRTL()`
  Return whether the page text direction is right to left.
  `static void`
  `loadStyleSheet(String styleSheetURL)`
  Load a styleSheet for this application.
  `static void`
  `moveTo(int left, int top)`
  Move the window to a specified top and left in screen coordinates.
  `static void`
  `registerKey(KeyIdentifier keyIdentifier, KeyCallback callback)`
  Deprecated.
  in favor of `registerKey(KeyIdentifier, PageKeyHandler)`
  `static void`
  `registerKey(KeyIdentifier keyIdentifier, PageKeyHandler callback)`
  Fire some action when the Page receives a keyPress event from a certain key.
  `static void`
  `registerKey(String keyName, KeyCallback callback)`
  Deprecated.
  in favor of `registerKey(String, PageKeyHandler)`
  `static void`
  `registerKey(String keyName, PageKeyHandler callback)`
  Fire some action when the Page receives a keyPress event from a certain key.
  `static void`
  `resizeTo(int width, int height)`
  Resize the outer portion of the window to a specific width and height.
  `static void`
  `scrollTo(int left, int top)`
  Scroll the window to a specified top and left coordinate.
  `static void`
  `setAddVersionToSkinCSS(Boolean addVersionToSkinCss)`
  Setting this to true will cause `loadStyleSheet()` to append an "isc_version" parameter to the end of the url when loading a stylesheet.
  `static void`
  `setAppFilesDir()`
  Specify the directory for miscellaneous app-specific files other than images, such as `HTML fragments`, `loadable views`, XML or JSON flat data files, videos, etc.
  `static void`
  `setAppFilesDir(String URL)`
  Specify the directory for miscellaneous app-specific files other than images, such as `HTML fragments`, `loadable views`, XML or JSON flat data files, videos, etc.
  `static void`
  `setAppImgDir()`
  Specify the directory for app-specific images.
  `static void`
  `setAppImgDir(String URL)`
  Specify the directory for app-specific images.
  `static void`
  `setIsomorphicDir()`
  Specify the root directory for Isomorphic-supplied files - the directory containing the `modules/` and `system/` subdirectories shipped as part of the Smart GWT package.
  `static void`
  `setIsomorphicDir(String URL)`
  Specify the root directory for Isomorphic-supplied files - the directory containing the `modules/` and `system/` subdirectories shipped as part of the Smart GWT package.
  `static void`
  `setIsomorphicToolsDir()`
  Specify the root directory for Isomorphic-supplied tools.
  `static void`
  `setIsomorphicToolsDir(String URL)`
  Specify the root directory for Isomorphic-supplied tools.
  `static void`
  `setSampleImgDir()`
  Specify the dir for Showcase-sample images which differ by skin.
  `static void`
  `setSampleImgDir(String URL)`
  Specify the dir for Showcase-sample images which differ by skin.
  `static void`
  `setSamplePhotoDir()`
  Specify the dir for skin-specific sample-photos in the product Showcase.
  `static void`
  `setSamplePhotoDir(String URL)`
  Specify the dir for skin-specific sample-photos in the product Showcase.
  `static void`
  `setSampleThumbnailDir()`
  Specify the dir for skin-specific sample-thumbnails in the product Showcase.
  `static void`
  `setSampleThumbnailDir(String URL)`
  Specify the dir for skin-specific sample-thumbnails in the product Showcase.
  `static void`
  `setSkinDir()`
  Specify the URL for media that's part of the skin
  `static void`
  `setSkinDir(String URL)`
  Specify the URL for media that's part of the skin
  `static void`
  `setTitle(String title)`
  Set the title of the page, which is typically shown as part of the browser window title
  `static void`
  `unregisterKey(String keyName)`
  Clears an action registered to fire on a specific keyPress event via the `registerKey(String, KeyCallback)` method.
  `static void`
  `updateViewport(Float scale, Integer width, Integer height, Boolean scalable)`
  This method only applies to browsers who support the special viewport meta html tag such as Safari running on the iPhone.

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

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### Page

    public Page()

- ## Method Details

  - ### checkBrowserAndRedirect

    public static void checkBrowserAndRedirect()
    Deprecated.
    As discussed in `BrowserSupport`, developers are recommended to consider which browsers they wish to support within their specific application rather than relying on framework supported browser detection.
    Check whether the browser is supported by the Isomorphic Smart GWT system. Behavior depends upon the value of `unsupportedBrowserAction`:
    - `"continue"` Load the page without notifying the user of potential issues
    - `"confirm"` Notify the user via a standard confirm dialog that their browser is not supported. Provide options to continue anyway, or redirect to another page. Text of the confirm dialog is retrieved by calling `getUnsupportedBrowserPromptString()`.
    - `"redirect"` Automatically redirect to the another URL
    If redirecting to another page is necessary, and no explicit URL is provided we will use `defaultUnsupportedBrowserURL`.

    This method is commonly called as part of the `skinning` logic after page load.

    See Also:
      - `com.smartgwt.client.util.Page#unsupportedBrowserAction`
      - `getUnsupportedBrowserPromptString()`
      - `com.smartgwt.client.util.Page#defaultUnsupportedBrowserURL`

  - ### checkBrowserAndRedirect

    public static void checkBrowserAndRedirect(String URL)
    Deprecated.
    As discussed in `BrowserSupport`, developers are recommended to consider which browsers they wish to support within their specific application rather than relying on framework supported browser detection.
    Check whether the browser is supported by the Isomorphic Smart GWT system. Behavior depends upon the value of `unsupportedBrowserAction`:
    - `"continue"` Load the page without notifying the user of potential issues
    - `"confirm"` Notify the user via a standard confirm dialog that their browser is not supported. Provide options to continue anyway, or redirect to another page. Text of the confirm dialog is retrieved by calling `getUnsupportedBrowserPromptString()`.
    - `"redirect"` Automatically redirect to the another URL
    If redirecting to another page is necessary, and no explicit URL is provided we will use `defaultUnsupportedBrowserURL`.

    This method is commonly called as part of the `skinning` logic after page load.

    Parameters:
      `URL` - URL of redirect page. May include Isomorphic special directories such as [SKIN].
    See Also:
      - `com.smartgwt.client.util.Page#unsupportedBrowserAction`
      - `getUnsupportedBrowserPromptString()`
      - `com.smartgwt.client.util.Page#defaultUnsupportedBrowserURL`

  - ### getAppDir

    public static String getAppDir()
    Returns the base URL of the application, which is the page URL minus the last non-directory path component. For example, if the page is loaded from `http://foo.com/bar/zoo.jsp`, appDir will be `http://foo.com/bar/`.

    If other page-wide URLs such as `setIsomorphicDir()` are specified as relative paths, they are considered relative to this URL.

    Returns:
      URL for page-specific files.

  - ### getAppFilesDir

    public static void getAppFilesDir()
    Returns the directory for application-specific files (other than images).

  - ### getAppFilesDir

    public static void getAppFilesDir(String URL)
    Returns the directory for application-specific files (other than images).
    Parameters:
      `URL` - New app files URL.

  - ### getAppImgDir

    public static String getAppImgDir()
    Return the directory for app-specific images.
    Returns:
      URL for page-specific images.

  - ### getDevicePixelRatio

    public static void getDevicePixelRatio()
    Returns the current ratio of the resolution in physical pixels to the resolution in CSS pixels in the browser, known as the device pixel ratio. The ratio reflects the combination of OS-level zoom, browser-level zoom, and device/OS defaults.

    When this value isn't 1, some browser bugs manifest, so it can be useful to check it as an indicator that certain issues may be present and, in turn, whether workarounds fom them must run. However, note that on Safari it's not useful as the value is identically 1.

    A specific application of this function is to check whether any zoom is present after a resize event so that the user can be informed that a page reload might be required for proper rendering. For that you'd want to follow these steps:

    - When your module's `EntryPoint` is called, store the current device pixel ratio
    - Then add a window resize handler (see Window.addResizeHandler()) that checks whether the ratio has transitioned away from one.
    - If zooming has been introduced, call `notify()` to let the user know a page resize may be needed.

  - ### getImgURL

    public static String getImgURL(String src)
    Return the full URL for app-specific or skin image.

    To use a skin image, start the URL with "[SKIN]". Any other relative URL is assumed relative to the `appImgDir`.

    Parameters:
      `src` - Local file name for the image. See `SCImgURL`
    Returns:
      URL for the image.
    See Also:
      - `SCImgURL`

  - ### getImgURL

    public static String getImgURL(String src, String imgDir)
    Return the full URL for app-specific or skin image.

    To use a skin image, start the URL with "[SKIN]". Any other relative URL is assumed relative to the `appImgDir`.

    Parameters:
      `src` - Local file name for the image. See `SCImgURL`
      `imgDir` - User-specified image directory, local to
    Returns:
      URL for the image.

  - ### getIsomorphicDir

    public static String getIsomorphicDir()
    Return the root directory for Isomorphic-specific files.
    Returns:
      IsomorphicDir URL.

  - ### getIsomorphicDocsDir

    public static String getIsomorphicDocsDir()
    Return the root directory for Isomorphic documentation and example files.
    Returns:
      URL for root of documentation and example files.

  - ### getIsomorphicToolsDir

    public static String getIsomorphicToolsDir()
    Return the root directory for Isomorphic-supplied tools dir.
    Returns:
      IsomorphicToolsDir URL.

  - ### getOrientation

    public static PageOrientation getOrientation()
    Is the current page wider than it is tall ("landscape" orientation) or the reverse ("portrait" orientation). Note that the `orientationChange page event` will be fired whenever the page orientation changes.

    This method is typically useful for apps developed for display on mobile devices, though it will also return a valid value when running against a desktop browser. See also `this discussion` on building applications for mobile devices

    Returns:
      current page orientation

  - ### getSampleImgDir

    public static String getSampleImgDir()
    Return the dir for Showcase-sample images which differ by skin.
    Returns:
      the dir for Showcase-sample images in the current skin.

  - ### getSamplePhotoDir

    public static String getSamplePhotoDir()
    Return the dir for skin-specific sample-photos in the product Showcase.
    Returns:
      URL for root directory of sample-photos.

  - ### getSamplePhotoDir

    public static String getSamplePhotoDir(String URL)
    Return the dir for skin-specific sample-photos in the product Showcase.
    Parameters:
      `URL` - New URL for Showcase sample-photos
    Returns:
      URL for root directory of sample-photos.

  - ### getSampleThumbnailDir

    public static String getSampleThumbnailDir()
    Return the dir for skin-specific sample-thumbnails in the product Showcase.
    Returns:
      URL for root directory of sample-thumbnails.

  - ### getSampleThumbnailDir

    public static String getSampleThumbnailDir(String URL)
    Return the dir for skin-specific sample-thumbnails in the product Showcase.
    Parameters:
      `URL` - New URL for Showcase sample-thumbnails
    Returns:
      URL for root directory of sample-thumbnails.

  - ### getScrollHeight

    public static int getScrollHeight()
    Get the height of the window contents as they have been drawn. If the page scrolls, this may be larger than the `getHeight()`.
    Returns:
      height of the page as drawn

  - ### getScrollLeft

    public static int getScrollLeft()
    Get the amount that the browser window has been scrolled horizontally.
    Returns:
      horizontal scroll amount

  - ### getScrollTop

    public static int getScrollTop()
    Get the amount that the browser window has been scrolled vertically.
    Returns:
      vertical scroll amount

  - ### getScrollWidth

    public static int getScrollWidth()
    Get the width of the window contents as they have been drawn. If the page scrolls, this may be larger than the `getWidth()`.
    Returns:
      width of the page as drawn

  - ### getSkinDir

    public static String getSkinDir()
    Return the directory for media that's part of the skin
    Returns:
      base URL for skin media

  - ### getSkinImgDir

    public static String getSkinImgDir()
    Return the directory for a skin image.
    Returns:
      URL for page-specific images.

  - ### getSkinImgDir

    public static String getSkinImgDir(String imgDir)
    Return the directory for a skin image.
    Parameters:
      `imgDir` - Partial URL (relative to Page._skinDir) where the image lives. If not supplied, will use "images/". See `URL`
    Returns:
      URL for page-specific images.

  - ### getToolsImgDir

    public static String getToolsImgDir()
    Return the images directory used by Isomorphic-supplied tools.
    Returns:
      ToolsImgDir URL.

  - ### getUnsupportedBrowserPromptString

    public static String getUnsupportedBrowserPromptString()
    Returns the text for the prompt shown to user from `checkBrowserAndRedirect()` if they are accessing this page in an unsupported browser and `unsupportedBrowserAction` is set to `"confirm"`. May be overridden to return a different message.
    Returns:
      Unsupported browser message.
    See Also:
      - `checkBrowserAndRedirect()`

  - ### getURL

    public static String getURL(String fileName)
    Return a full URL for a relative path that uses a special prefix such as "[APPFILES]" or "[SKIN]".

    For images, use `getImgURL()` instead.

    Parameters:
      `fileName` - Local file name for the image.
    Returns:
      URL for the image.

  - ### isAddVersionToSkinCSS

    public static Boolean isAddVersionToSkinCSS()
    Returns true if add version to skin CSS is currently turned on.
    Returns:
      true == add version to skin CSS is turned on

  - ### isDarkSkin

    public static Boolean isDarkSkin()
    Returns true if the current skin has a dark background and light text, false otherwise.

    Detection precedence:

    1. If the skin's `load_skin.js` declares `darkMode:true` in its `isc.setCurrentSkin({...})` call, that value is returned directly ? this is the authoritative, declarative marker a skin uses to identify itself as dark. Applications (like Showcase) can flip to a compatible dark appearance based on this single property without having to maintain a hardcoded list of dark skin names.
    2. Otherwise, the background color of the `pageBackground` CSS class is sampled and compared against black vs white using a readability heuristic ? works for custom skins (e.g. those built in the Skin Editor) that do not declare `darkMode` but do set a dark pageBackground.
    Returns:
      true if the current skin has a dark background and light text

  - ### isLoaded

    public static Boolean isLoaded()
    Has the page finished loading?
    Returns:
      true == page is done loading

  - ### isRTL

    public static Boolean isRTL()
    Return whether the page text direction is right to left. If you set "DIR=RTL" in the BODY tag of the page, then this method will return true. If you set "DIR=LTR" then this method will return false.
    Returns:
      true if Page text direction is RTL, false otherwise

  - ### loadStyleSheet

    public static void loadStyleSheet(String styleSheetURL)
    Load a styleSheet for this application. The styleSheetURL parameter can use any special directories, eg:
    `Page.loadStylesheet("[SKIN]/skin_styles.css")`
    or
    `Page.loadStylesheet("[APP]/app_styles.css")`.

    If you don't specify a special directory, the app directory will be assumed.

    Note: If the document's ONLOAD handler has already fired, this will have no effect.

    Parameters:
      `styleSheetURL` - URL to the stylesheet. See `URL`
    See Also:
      - `URL`

  - ### moveTo

    public static void moveTo(int left, int top)
    Move the window to a specified top and left in screen coordinates.
    Parameters:
      `left` - new left coordinate for window
      `top` - new top coordinate for window

  - ### resizeTo

    public static void resizeTo(int width, int height)
    Resize the outer portion of the window to a specific width and height.
    Parameters:
      `width` - new width for the window
      `height` - new height for the window

  - ### scrollTo

    public static void scrollTo(int left, int top)
    Scroll the window to a specified top and left coordinate.
    Parameters:
      `left` - new left coordinate for window
      `top` - new top coordinate for window

  - ### setAddVersionToSkinCSS

    public static void setAddVersionToSkinCSS(Boolean addVersionToSkinCss)
    Setting this to true will cause `loadStyleSheet()` to append an "isc_version" parameter to the end of the url when loading a stylesheet.
    Parameters:
      `addVersionToSkinCss` - pass in true to turn on automatic adding of version parameter to css urls.

  - ### setAppFilesDir

    public static void setAppFilesDir()
    Specify the directory for miscellaneous app-specific files other than images, such as `HTML fragments`, `loadable views`, XML or JSON flat data files, videos, etc.

    This URL also becomes available via the prefix "[APPFILES]" for `RPCRequest.actionURL`.

    Defaults to the value of `getAppDir()`, that is, the current directory.

  - ### setAppFilesDir

    public static void setAppFilesDir(String URL)
    Specify the directory for miscellaneous app-specific files other than images, such as `HTML fragments`, `loadable views`, XML or JSON flat data files, videos, etc.

    This URL also becomes available via the prefix "[APPFILES]" for `RPCRequest.actionURL`.

    Defaults to the value of `getAppDir()`, that is, the current directory.

    Parameters:
      `URL` - New app files URL.

  - ### setAppImgDir

    public static void setAppImgDir()
    Specify the directory for app-specific images.

    This becomes the default location where any Smart GWT component will load images from unless the special "[SKIN]" prefix is used to indicate that an image is part of a skin.

    Default is "[APP]images/"

  - ### setAppImgDir

    public static void setAppImgDir(String URL)
    Specify the directory for app-specific images.

    This becomes the default location where any Smart GWT component will load images from unless the special "[SKIN]" prefix is used to indicate that an image is part of a skin.

    Default is "[APP]images/"

    Parameters:
      `URL` - New imgDir URL.

  - ### setIsomorphicDir

    public static void setIsomorphicDir()
    Specify the root directory for Isomorphic-supplied files - the directory containing the `modules/` and `system/` subdirectories shipped as part of the Smart GWT package.

    Note that this property is commonly specified directly in the bootstrap HTML file by setting `window.isomorphicDir` before loading the Smart GWT library files.

  - ### setIsomorphicDir

    public static void setIsomorphicDir(String URL)
    Specify the root directory for Isomorphic-supplied files - the directory containing the `modules/` and `system/` subdirectories shipped as part of the Smart GWT package.

    Note that this property is commonly specified directly in the bootstrap HTML file by setting `window.isomorphicDir` before loading the Smart GWT library files.

    Parameters:
      `URL` - New IsomorphicDir URL.

  - ### setIsomorphicToolsDir

    public static void setIsomorphicToolsDir()
    Specify the root directory for Isomorphic-supplied tools. Typicall tools/ under webRoot.

    Note that this property is commonly specified directly in the bootstrap HTML file by setting `window.isomorphicToolsDir` before loading the Smart GWT library files. If unset, it defaults to $isomorphicDir/../tools/

  - ### setIsomorphicToolsDir

    public static void setIsomorphicToolsDir(String URL)
    Specify the root directory for Isomorphic-supplied tools. Typicall tools/ under webRoot.

    Note that this property is commonly specified directly in the bootstrap HTML file by setting `window.isomorphicToolsDir` before loading the Smart GWT library files. If unset, it defaults to $isomorphicDir/../tools/

    Parameters:
      `URL` - New IsomorphicToolsDir URL.

  - ### setSampleImgDir

    public static void setSampleImgDir()
    Specify the dir for Showcase-sample images which differ by skin.

  - ### setSampleImgDir

    public static void setSampleImgDir(String URL)
    Specify the dir for Showcase-sample images which differ by skin.
    Parameters:
      `URL` - New URL for Showcase-sample images in the current skin

  - ### setSamplePhotoDir

    public static void setSamplePhotoDir()
    Specify the dir for skin-specific sample-photos in the product Showcase.

  - ### setSamplePhotoDir

    public static void setSamplePhotoDir(String URL)
    Specify the dir for skin-specific sample-photos in the product Showcase.
    Parameters:
      `URL` - New URL for Showcase sample-photos

  - ### setSampleThumbnailDir

    public static void setSampleThumbnailDir()
    Specify the dir for skin-specific sample-thumbnails in the product Showcase.

  - ### setSampleThumbnailDir

    public static void setSampleThumbnailDir(String URL)
    Specify the dir for skin-specific sample-thumbnails in the product Showcase.
    Parameters:
      `URL` - New URL for Showcase sample thumbnails

  - ### setSkinDir

    public static void setSkinDir()
    Specify the URL for media that's part of the skin

  - ### setSkinDir

    public static void setSkinDir(String URL)
    Specify the URL for media that's part of the skin
    Parameters:
      `URL` - New skinDir URL

  - ### registerKey

    public static void registerKey(String keyName, KeyCallback callback)
    Deprecated.
    in favor of `registerKey(String, PageKeyHandler)`
    Fire some action when the Page receives a keyPress event from a certain key. Note that if a widget has keyboard focus, this action will fire only after any widget-level keyPress handlers have fired and bubbled the event up to the top of their ancestor chain. Multiple actions can be registered to fire on a single keyPress using this method. This differs from calling Page.setEvent() with the "keyPress" events registered via setEvent() will fire before widget level handlers respond to the event, and will fire for every keyPress event, not just those triggered by some specific key or key-combination.
    Parameters:
      `keyName` - the key name
      `callback` - the callback function

  - ### registerKey

    public static void registerKey(KeyIdentifier keyIdentifier, KeyCallback callback)
    Deprecated.
    in favor of `registerKey(KeyIdentifier, PageKeyHandler)`
    Fire some action when the Page receives a keyPress event from a certain key. Note that if a widget has keyboard focus, this action will fire only after any widget-level keyPress handlers have fired and bubbled the event up to the top of their ancestor chain. Multiple actions can be registered to fire on a single keyPress using this method. This differs from calling Page.setEvent() with the "keyPress" events registered via setEvent() will fire before widget level handlers respond to the event, and will fire for every keyPress event, not just those triggered by some specific key or key-combination.
    Parameters:
      `keyIdentifier` - the key identifier
      `callback` - the callback function

  - ### registerKey

    public static void registerKey(String keyName, PageKeyHandler callback)
    Fire some action when the Page receives a keyPress event from a certain key. Note that if a widget has keyboard focus, this action will fire only after any widget-level keyPress handlers have fired and bubbled the event up to the top of their ancestor chain. Multiple actions can be registered to fire on a single keyPress using this method. This differs from calling Page.setEvent() with the "keyPress" events registered via setEvent() will fire before widget level handlers respond to the event, and will fire for every keyPress event, not just those triggered by some specific key or key-combination. To attempt to cancel the native behavior of a browser-level event, call cancel() on the PageKeyHandler. Note, however, that not all browsers support cancelling all native actions, and that cancelling certain native key shortcuts can be annoying to end users (like cancelling a key shortcut used to create a new bookmark, for example).
    Parameters:
      `keyName` - the key name
      `callback` - a cancellable PageKeyHandler instance

  - ### registerKey

    public static void registerKey(KeyIdentifier keyIdentifier, PageKeyHandler callback)
    Fire some action when the Page receives a keyPress event from a certain key. Note that if a widget has keyboard focus, this action will fire only after any widget-level keyPress handlers have fired and bubbled the event up to the top of their ancestor chain. Multiple actions can be registered to fire on a single keyPress using this method. This differs from calling Page.setEvent() with the "keyPress" events registered via setEvent() will fire before widget level handlers respond to the event, and will fire for every keyPress event, not just those triggered by some specific key or key-combination. To attempt to cancel the native behavior of a browser-level event, call cancel() on the PageKeyHandler. Note, however, that not all browsers support cancelling all native actions, and that cancelling certain native key shortcuts can be annoying to end users (like cancelling a key shortcut used to create a new bookmark, for example).
    Parameters:
      `keyIdentifier` - the key identifier
      `callback` - a cancellable PageKeyHandler instance

  - ### unregisterKey

    public static void unregisterKey(String keyName)
    Clears an action registered to fire on a specific keyPress event via the `registerKey(String, KeyCallback)` method.
    Parameters:
      `keyName` - name of key to clear registry entries for

  - ### setTitle

    public static void setTitle(String title)
    Set the title of the page, which is typically shown as part of the browser window title
    Parameters:
      `title` - the page title

  - ### getWidth

    public static int getWidth()
    Get the width of the visible portion of the window, not including browser chrome or the scrollbar area.
    Returns:
      the width of the page

  - ### getHeight

    public static int getHeight()
    Get the height of the visible portion of the window, not including browser chrome or the scrollbar area.
    Returns:
      the height of the page

  - ### getScreenWidth

    public static int getScreenWidth()
    Get the width of the user's screen, in pixels.
    Returns:
      the screen width

  - ### getScreenHeight

    public static int getScreenHeight()
    Get the height of the user's screen, in pixels.
    Returns:
      the screen height

  - ### updateViewport

    public static void updateViewport(Float scale, Integer width, Integer height, Boolean scalable)
    This method only applies to browsers who support the special viewport meta html tag such as Safari running on the iPhone.

    This method will dynamically change the viewport configuration, allowing you to set an initial size or scale level and enable / disable user-scaling. Typically this method will be called with a value for scale, width or height rather than passing in values for all three properties.
    See the apple documentation about configuring the viewport for more information:

    Parameters:
      `scale` - Desired scale level where 1 indicates no scaling (each CSS pixel will be displayed using 1px on the physical device). Pass in null to avoid setting this property.
      `width` - Desired viewport width in pixels. This indicates how many pixels should fit within the device screen. Pass in null to avoid setting this property.
      `height` - Desired viewport height in pixels. This indicates how many pixels should fit within the device screen. Pass in null to avoid setting this property.
      `scalable` - Should the user be able to scale the application (using pinch gestures, double tapping, rotating the device, etc.)?

  - ### addOrientationChangeHandler

    public static HandlerRegistration addOrientationChangeHandler(OrientationChangeHandler handler)