# Interface InputMethodRequests

public interface InputMethodRequests
InputMethodRequests defines the requests that a text editing node has to handle in order to work with input methods. The node can implement this interface itself or use a separate object that implements it. The object implementing this interface must be returned from the node's getInputMethodRequests method.

Since:
  JavaFX 2.0

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `cancelLatestCommittedText()`
  Gets the latest committed text from the text editing node and removes it from the node's text body.
  `int`
  `getLocationOffset(int x, int y)`
  Gets the offset within the composed text for the specified absolute x and y coordinates on the screen.
  `String`
  `getSelectedText()`
  Gets the currently selected text from the text editing node.
  `Point2D`
  `getTextLocation(int offset)`
  Gets the location of a specified offset in the current composed text, or of the selection in committed text.

- ## Method Details

  - ### getTextLocation

    Point2D getTextLocation(int offset)
    Gets the location of a specified offset in the current composed text, or of the selection in committed text. This information is, for example, used to position the candidate window near the composed text, or a composition window near the location where committed text will be inserted.
    Parameters:
      `offset` - the offset within the composed text, if there is composed text; null otherwise
    Returns:
      a point representing the screen location of the offset

  - ### getLocationOffset

    int getLocationOffset(int x, int y)
    Gets the offset within the composed text for the specified absolute x and y coordinates on the screen. This information is used, for example to handle mouse clicks and the mouse cursor. The offset is relative to the composed text, so offset 0 indicates the beginning of the composed text.
    Parameters:
      `x` - the absolute x coordinate on screen
      `y` - the absolute y coordinate on screen
    Returns:
      the offset in the composed text.

  - ### cancelLatestCommittedText

    void cancelLatestCommittedText()
    Gets the latest committed text from the text editing node and removes it from the node's text body. This is used for the "Undo Commit" feature in some input methods, where the committed text reverts to its previous composed state. The composed text will be sent to the node using an InputMethodEvent.

  - ### getSelectedText

    String getSelectedText()
    Gets the currently selected text from the text editing node. This may be used for a variety of purposes. One of them is the "Reconvert" feature in some input methods. In this case, the input method will typically send an input method event to replace the selected text with composed text. Depending on the input method's capabilities, this may be the original composed text for the selected text, the latest composed text entered anywhere in the text, or a version of the text that's converted back from the selected text.
    Returns:
      the latest committed text, or null when the "Undo Commit" feature is not supported