# Class TextInputControlSkin<T extends TextInputControl>

java.lang.Object
javafx.scene.control.SkinBase<T>
javafx.scene.control.skin.TextInputControlSkin<T>

Type Parameters:
  `T` - the type of the text input control

All Implemented Interfaces:
  `Skin<T>`

Direct Known Subclasses:
  `TextAreaSkin, TextFieldSkin`

public abstract class TextInputControlSkin<T extends TextInputControl> extends SkinBase<T>
Abstract base class for text input skins.

Since:
  9
See Also:
  - `TextFieldSkin`
  - `TextAreaSkin`

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static enum`
  `TextInputControlSkin.Direction`
  Direction names for caret movement.
  `static enum`
  `TextInputControlSkin.TextUnit`
  Unit names for caret movement.

- ## Property Summary

  Properties
  Type
  Property
  Description
  `protected final BooleanProperty`
  `forwardBias`
  Caret bias in the content.
  `protected final ObjectProperty<Paint>`
  `highlightFill`
  The fill to use for the text when highlighted.
  `protected final ObjectProperty<Paint>`
  `highlightTextFill`
  The fill `Paint` used for the foreground of selected text.
  `protected final ObjectProperty<Paint>`
  `promptTextFill`
  The fill `Paint` used for the foreground of prompt text.
  `protected final ObjectProperty<Paint>`
  `textFill`
  The fill to use for the text under normal conditions

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TextInputControlSkin(T control)`
  Creates a new instance of TextInputControlSkin, although note that this instance does not handle any behavior / input mappings - this needs to be handled appropriately by subclasses.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected abstract void`
  `addHighlight(List<? extends Node> nodes, int start)`
  Adds highlight for composed text from Input Method.
  `protected final BooleanProperty`
  `forwardBiasProperty()`
  Caret bias in the content.
  `Rectangle2D`
  `getCharacterBounds(int index)`
  Returns the bounds of the character at a given index.
  `static List<CssMetaData<? extends Styleable, ?>>`
  `getClassCssMetaData()`
  Returns the CssMetaData associated with this class, which may include the CssMetaData of its superclasses.
  `protected final Paint`
  `getHighlightFill()`
  Gets the value of the `highlightFill` property.
  `protected final Paint`
  `getHighlightTextFill()`
  Gets the value of the `highlightTextFill` property.
  `protected int`
  `getInsertionPoint(double x, double y)`
  Returns the insertion point for a given location.
  `Point2D`
  `getMenuPosition()`
  Returns the position to be used for a context menu, based on the location of the caret handle or selection handles.
  `protected final Paint`
  `getPromptTextFill()`
  Gets the value of the `promptTextFill` property.
  `protected abstract PathElement[]`
  `getRangeShape(int start, int end)`
  Gets the path elements describing the bounding rectangles for the given range of text.
  `protected final Paint`
  `getTextFill()`
  Gets the value of the `textFill` property.
  `protected abstract PathElement[]`
  `getUnderlineShape(int start, int end)`
  Gets the path elements describing the shape of the underline for the given range.
  `protected void`
  `handleInputMethodEvent(InputMethodEvent event)`
  Handles an input method event.
  `protected final ObjectProperty<Paint>`
  `highlightFillProperty()`
  The fill to use for the text when highlighted.
  `protected final ObjectProperty<Paint>`
  `highlightTextFillProperty()`
  The fill `Paint` used for the foreground of selected text.
  `protected void`
  `invalidateMetrics()`
  Invalidates cached min and pref sizes for the TextInputControl.
  `protected final boolean`
  `isForwardBias()`
  Gets the value of the `forwardBias` property.
  `protected String`
  `maskText(String txt)`
  This method may be overridden by subclasses to replace the displayed characters without affecting the actual text content.
  `abstract void`
  `moveCaret(TextInputControlSkin.TextUnit unit, TextInputControlSkin.Direction dir, boolean select)`
  Moves the caret by one of the given text unit, in the given direction.
  `protected final ObjectProperty<Paint>`
  `promptTextFillProperty()`
  The fill `Paint` used for the foreground of prompt text.
  `protected abstract void`
  `removeHighlight(List<? extends Node> nodes)`
  Removes highlight for composed text from Input Method.
  `protected void`
  `scrollCharacterToVisible(int index)`
  Ensures that the character at a given index is visible.
  `void`
  `setCaretAnimating(boolean value)`
  Starts or stops caret blinking.
  `final void`
  `setForwardBias(boolean isLeading)`
  Sets the value of the `forwardBias` property.
  `protected final void`
  `setHighlightFill(Paint value)`
  The fill `Paint` used for the background of selected text.
  `protected final void`
  `setHighlightTextFill(Paint value)`
  The fill `Paint` used for the foreground of selected text.
  `protected final void`
  `setPromptTextFill(Paint value)`
  The fill `Paint` used for the foreground prompt text color.
  `protected final void`
  `setTextFill(Paint value)`
  The fill `Paint` used for the foreground text color.
  `protected final ObjectProperty<Paint>`
  `textFillProperty()`
  The fill to use for the text under normal conditions
  `protected void`
  `updateHighlightFill()`
  Called when highlightFill property changes.
  `protected void`
  `updateHighlightTextFill()`
  Called when highlightTextFill property changes.
  `protected void`
  `updateTextFill()`
  Called when textFill property changes.

  ### Methods declared in class SkinBase

  `computeBaselineOffset, computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, consumeMouseEvents, dispose, executeAccessibleAction, getChildren, getCssMetaData, getNode, getSkinnable, layoutChildren, layoutInArea, layoutInArea, layoutInArea, positionInArea, positionInArea, pseudoClassStateChanged, queryAccessibleAttribute, registerChangeListener, registerInvalidationListener, registerListChangeListener, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, unregisterChangeListeners, unregisterInvalidationListeners, unregisterListChangeListeners`

  ### Methods declared in class Object

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

  ### Methods declared in interface Skin

  `install`

- ## Property Details

  - ### textFill

    protected final ObjectProperty<Paint> textFillProperty
    The fill to use for the text under normal conditions
    See Also:
      - `getTextFill()`
      - `setTextFill(Paint)`
      - `textFillProperty()`

  - ### promptTextFill

    protected final ObjectProperty<Paint> promptTextFillProperty
    The fill `Paint` used for the foreground of prompt text.
    See Also:
      - `getPromptTextFill()`
      - `setPromptTextFill(Paint)`
      - `promptTextFillProperty()`

  - ### highlightFill

    protected final ObjectProperty<Paint> highlightFillProperty
    The fill to use for the text when highlighted.
    See Also:
      - `getHighlightFill()`
      - `setHighlightFill(Paint)`
      - `highlightFillProperty()`

  - ### highlightTextFill

    protected final ObjectProperty<Paint> highlightTextFillProperty
    The fill `Paint` used for the foreground of selected text.
    See Also:
      - `getHighlightTextFill()`
      - `setHighlightTextFill(Paint)`
      - `highlightTextFillProperty()`

  - ### forwardBias

    protected final BooleanProperty forwardBiasProperty
    Caret bias in the content. true means a bias towards forward character (true=leading/false=trailing)
    See Also:
      - `isForwardBias()`
      - `setForwardBias(boolean)`
      - `forwardBiasProperty()`

- ## Constructor Details

  - ### TextInputControlSkin

    public TextInputControlSkin(T control)
    Creates a new instance of TextInputControlSkin, although note that this instance does not handle any behavior / input mappings - this needs to be handled appropriately by subclasses.
    Parameters:
      `control` - The control that this skin should be installed onto.

- ## Method Details

  - ### setTextFill

    protected final void setTextFill(Paint value)
    The fill `Paint` used for the foreground text color.
    Parameters:
      `value` - the text fill

  - ### getTextFill

    protected final Paint getTextFill()
    Gets the value of the `textFill` property.
    Property description:
      The fill to use for the text under normal conditions
    Returns:
      the value of the `textFill` property
    See Also:
      - `setTextFill(Paint)`
      - `textFillProperty()`

  - ### textFillProperty

    protected final ObjectProperty<Paint> textFillProperty()
    The fill to use for the text under normal conditions
    Returns:
      the `textFill` property
    See Also:
      - `getTextFill()`
      - `setTextFill(Paint)`

  - ### setPromptTextFill

    protected final void setPromptTextFill(Paint value)
    The fill `Paint` used for the foreground prompt text color.
    Parameters:
      `value` - the prompt text fill

  - ### getPromptTextFill

    protected final Paint getPromptTextFill()
    Gets the value of the `promptTextFill` property.
    Property description:
      The fill `Paint` used for the foreground of prompt text.
    Returns:
      the value of the `promptTextFill` property
    See Also:
      - `setPromptTextFill(Paint)`
      - `promptTextFillProperty()`

  - ### promptTextFillProperty

    protected final ObjectProperty<Paint> promptTextFillProperty()
    The fill `Paint` used for the foreground of prompt text.
    Returns:
      the `promptTextFill` property
    See Also:
      - `getPromptTextFill()`
      - `setPromptTextFill(Paint)`

  - ### setHighlightFill

    protected final void setHighlightFill(Paint value)
    The fill `Paint` used for the background of selected text.
    Parameters:
      `value` - the highlight fill

  - ### getHighlightFill

    protected final Paint getHighlightFill()
    Gets the value of the `highlightFill` property.
    Property description:
      The fill to use for the text when highlighted.
    Returns:
      the value of the `highlightFill` property
    See Also:
      - `setHighlightFill(Paint)`
      - `highlightFillProperty()`

  - ### highlightFillProperty

    protected final ObjectProperty<Paint> highlightFillProperty()
    The fill to use for the text when highlighted.
    Returns:
      the `highlightFill` property
    See Also:
      - `getHighlightFill()`
      - `setHighlightFill(Paint)`

  - ### setHighlightTextFill

    protected final void setHighlightTextFill(Paint value)
    The fill `Paint` used for the foreground of selected text.
    Parameters:
      `value` - the highlight text fill

  - ### getHighlightTextFill

    protected final Paint getHighlightTextFill()
    Gets the value of the `highlightTextFill` property.
    Property description:
      The fill `Paint` used for the foreground of selected text.
    Returns:
      the value of the `highlightTextFill` property
    See Also:
      - `setHighlightTextFill(Paint)`
      - `highlightTextFillProperty()`

  - ### highlightTextFillProperty

    protected final ObjectProperty<Paint> highlightTextFillProperty()
    The fill `Paint` used for the foreground of selected text.
    Returns:
      the `highlightTextFill` property
    See Also:
      - `getHighlightTextFill()`
      - `setHighlightTextFill(Paint)`

  - ### forwardBiasProperty

    protected final BooleanProperty forwardBiasProperty()
    Caret bias in the content. true means a bias towards forward character (true=leading/false=trailing)
    Returns:
      the `forwardBias` property
    See Also:
      - `isForwardBias()`
      - `setForwardBias(boolean)`

  - ### setForwardBias

    public final void setForwardBias(boolean isLeading)
    Sets the value of the `forwardBias` property.
    Property description:
      Caret bias in the content. true means a bias towards forward character (true=leading/false=trailing)
    Parameters:
      `isLeading` - the value for the `forwardBias` property
    See Also:
      - `isForwardBias()`
      - `forwardBiasProperty()`

  - ### isForwardBias

    protected final boolean isForwardBias()
    Gets the value of the `forwardBias` property.
    Property description:
      Caret bias in the content. true means a bias towards forward character (true=leading/false=trailing)
    Returns:
      the value of the `forwardBias` property
    See Also:
      - `setForwardBias(boolean)`
      - `forwardBiasProperty()`

  - ### getUnderlineShape

    protected abstract PathElement[] getUnderlineShape(int start, int end)
    Gets the path elements describing the shape of the underline for the given range.
    Parameters:
      `start` - the start
      `end` - the end
    Returns:
      the path elements describing the shape of the underline for the given range

  - ### getRangeShape

    protected abstract PathElement[] getRangeShape(int start, int end)
    Gets the path elements describing the bounding rectangles for the given range of text.
    Parameters:
      `start` - the start
      `end` - the end
    Returns:
      the path elements describing the bounding rectangles for the given range of text

  - ### addHighlight

    protected abstract void addHighlight(List<? extends Node> nodes, int start)
    Adds highlight for composed text from Input Method.
    Parameters:
      `nodes` - the list of nodes
      `start` - the start

  - ### removeHighlight

    protected abstract void removeHighlight(List<? extends Node> nodes)
    Removes highlight for composed text from Input Method.
    Parameters:
      `nodes` - the list of nodes

  - ### moveCaret

    public abstract void moveCaret(TextInputControlSkin.TextUnit unit, TextInputControlSkin.Direction dir, boolean select)
    Moves the caret by one of the given text unit, in the given direction. Note that only certain combinations are valid, depending on the implementing subclass.
    Parameters:
      `unit` - the unit of text to move by.
      `dir` - the direction of movement.
      `select` - whether to extends the selection to the new position.

  - ### getMenuPosition

    public Point2D getMenuPosition()
    Returns the position to be used for a context menu, based on the location of the caret handle or selection handles. This is supported only on touch displays and does not use the location of the mouse.
    Returns:
      the position to be used for this context menu

  - ### maskText

    protected String maskText(String txt)
    This method may be overridden by subclasses to replace the displayed characters without affecting the actual text content. This is used to display bullet characters in PasswordField.
    Parameters:
      `txt` - the content that may need to be masked.
    Returns:
      the replacement string. This may just be the input string, or may be a string of replacement characters with the same length as the input string.

  - ### getInsertionPoint

    protected int getInsertionPoint(double x, double y)
    Returns the insertion point for a given location.
    Parameters:
      `x` - the x location
      `y` - the y location
    Returns:
      the insertion point for a given location

  - ### getCharacterBounds

    public Rectangle2D getCharacterBounds(int index)
    Returns the bounds of the character at a given index.
    Parameters:
      `index` - the index
    Returns:
      the bounds of the character at a given index

  - ### scrollCharacterToVisible

    protected void scrollCharacterToVisible(int index)
    Ensures that the character at a given index is visible.
    Parameters:
      `index` - the index

  - ### invalidateMetrics

    protected void invalidateMetrics()
    Invalidates cached min and pref sizes for the TextInputControl.

  - ### updateTextFill

    protected void updateTextFill()
    Called when textFill property changes.

  - ### updateHighlightFill

    protected void updateHighlightFill()
    Called when highlightFill property changes.

  - ### updateHighlightTextFill

    protected void updateHighlightTextFill()
    Called when highlightTextFill property changes.

  - ### handleInputMethodEvent

    protected void handleInputMethodEvent(InputMethodEvent event)
    Handles an input method event.
    Parameters:
      `event` - the `InputMethodEvent` to be handled

  - ### setCaretAnimating

    public void setCaretAnimating(boolean value)
    Starts or stops caret blinking. The behavior classes use this to temporarily pause blinking while user is typing or otherwise moving the caret.
    Parameters:
      `value` - whether caret should be blinking.

  - ### getClassCssMetaData

    public static List<CssMetaData<? extends Styleable, ?>> getClassCssMetaData()
    Returns the CssMetaData associated with this class, which may include the CssMetaData of its superclasses.
    Returns:
      the CssMetaData associated with this class, which may include the CssMetaData of its superclasses