Package org.fife.ui.rsyntaxtextarea

## Class RSyntaxTextAreaUI

- java.lang.Object
- - javax.swing.plaf.ComponentUI
  - - javax.swing.plaf.TextUI
    - - javax.swing.plaf.basic.BasicTextUI
      - - javax.swing.plaf.basic.BasicTextAreaUI
        - - org.fife.ui.rtextarea.RTextAreaUI
          - - org.fife.ui.rsyntaxtextarea.RSyntaxTextAreaUI

- All Implemented Interfaces:
    `ViewFactory`

      public class RSyntaxTextAreaUI
      extends RTextAreaUI

  UI used by `RSyntaxTextArea`. This allows us to implement syntax highlighting.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicTextUI

      `BasicTextUI.BasicCaret, BasicTextUI.BasicHighlighter`

  - ### Field Summary

    - ### Fields inherited from class org.fife.ui.rtextarea.RTextAreaUI

      `textArea`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `RSyntaxTextAreaUI​(JComponent rSyntaxTextArea)` | Constructor.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `View` | `create​(Element elem)` | Creates the view for an element.
    `protected Highlighter` | `createHighlighter()` | Creates the highlighter to use for syntax text areas.
    `static ComponentUI` | `createUI​(JComponent ta)` |
    `protected String` | `getActionMapName()` | Returns the name to use to cache/fetch the shared action map.
    `EditorKit` | `getEditorKit​(JTextComponent tc)` | Fetches the EditorKit for the UI.
    `protected InputMap` | `getRTextAreaInputMap()` | Get the InputMap to use for the UI.
    `protected void` | `paintEditorAugmentations​(Graphics g)` | Paints editor augmentations added by RTextArea: highlighted lines, current line highlight, and margin line.
    `protected void` | `paintMatchedBracket​(Graphics g)` | Paints the "matched bracket", if any.
    `protected void` | `paintMatchedBracketImpl​(Graphics g, RSyntaxTextArea rsta, Rectangle r)` |
    `protected void` | `propertyChange​(PropertyChangeEvent e)` | Gets called whenever a bound property is changed on this UI's `RSyntaxTextArea`.
    `void` | `refreshSyntaxHighlighting()` | Updates the view.
    `int` | `yForLine​(int line)` | Returns the y-coordinate of the specified line.
    `int` | `yForLineContaining​(int offs)` | Returns the y-coordinate of the line containing a specified offset.

    - ### Methods inherited from class org.fife.ui.rtextarea.RTextAreaUI

      `createCaret, createKeymap, createRTextAreaActionMap, getRTextArea, getVisibleEditorRect, installDefaults, installKeyboardActions, installUI, paintBackground, paintCurrentLineHighlight, paintLineHighlights, paintMarginLine, paintSafely`

    - ### Methods inherited from class javax.swing.plaf.basic.BasicTextAreaUI

      `getBaseline, getBaselineResizeBehavior, getMinimumSize, getPreferredSize, getPropertyPrefix`

    - ### Methods inherited from class javax.swing.plaf.basic.BasicTextUI

      `create, damageRange, damageRange, getComponent, getKeymapName, getMaximumSize, getNextVisualPositionFrom, getRootView, getToolTipText, installListeners, modelChanged, modelToView, modelToView, modelToView2D, paint, setView, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, uninstallUI, update, viewToModel, viewToModel, viewToModel2D`

    - ### Methods inherited from class javax.swing.plaf.TextUI

      `getToolTipText2D`

    - ### Methods inherited from class javax.swing.plaf.ComponentUI

      `contains, getAccessibleChild, getAccessibleChildrenCount`

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

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

- - ### Constructor Detail

    - #### RSyntaxTextAreaUI

          public RSyntaxTextAreaUI​(JComponent rSyntaxTextArea)

      Constructor.

  - ### Method Detail

    - #### createUI

          public static ComponentUI createUI​(JComponent ta)

    - #### create

          public View create​(Element elem)

      Creates the view for an element.
      Specified by:
        `create` in interface `ViewFactory`
      Overrides:
        `create` in class `RTextAreaUI`
      Parameters:
        `elem` - The element.
      Returns:
        The view.

    - #### createHighlighter

          protected Highlighter createHighlighter()

      Creates the highlighter to use for syntax text areas.
      Overrides:
        `createHighlighter` in class `BasicTextUI`
      Returns:
        The highlighter.

    - #### getActionMapName

          protected String getActionMapName()

      Returns the name to use to cache/fetch the shared action map. This should be overridden by subclasses if the subclass has its own custom editor kit to install, so its actions get picked up.
      Overrides:
        `getActionMapName` in class `RTextAreaUI`
      Returns:
        The name of the cached action map.

    - #### getEditorKit

          public EditorKit getEditorKit​(JTextComponent tc)

      Fetches the EditorKit for the UI.
      Overrides:
        `getEditorKit` in class `RTextAreaUI`
      Parameters:
        `tc` - The text component for which this UI is installed.
      Returns:
        The editor capabilities.
      See Also:
        `TextUI.getEditorKit(javax.swing.text.JTextComponent)`

    - #### getRTextAreaInputMap

          protected InputMap getRTextAreaInputMap()

      Get the InputMap to use for the UI.

      This method is not named `getInputMap()` because there is a package-private method in `BasicTextAreaUI` with that name. Thus, creating a new method with that name causes certain compilers to issue warnings that you are not actually overriding the original method (since it is package-private).

      Overrides:
        `getRTextAreaInputMap` in class `RTextAreaUI`

    - #### paintEditorAugmentations

          protected void paintEditorAugmentations​(Graphics g)

      Description copied from class: `RTextAreaUI`
      Paints editor augmentations added by RTextArea: highlighted lines, current line highlight, and margin line.
      Overrides:
        `paintEditorAugmentations` in class `RTextAreaUI`
      Parameters:
        `g` - The graphics context with which to paint.

    - #### paintMatchedBracket

          protected void paintMatchedBracket​(Graphics g)

      Paints the "matched bracket", if any.
      Parameters:
        `g` - The graphics context.

    - #### paintMatchedBracketImpl

          protected void paintMatchedBracketImpl​(Graphics g,
                                                 RSyntaxTextArea rsta,
                                                 Rectangle r)

    - #### propertyChange

          protected void propertyChange​(PropertyChangeEvent e)

      Gets called whenever a bound property is changed on this UI's `RSyntaxTextArea`.
      Overrides:
        `propertyChange` in class `BasicTextAreaUI`
      Parameters:
        `e` - The property change event.

    - #### refreshSyntaxHighlighting

          public void refreshSyntaxHighlighting()

      Updates the view. This should be called when the underlying `RSyntaxTextArea` changes its syntax editing style.

    - #### yForLine

          public int yForLine​(int line)
                       throws BadLocationException

      Returns the y-coordinate of the specified line.

      This method is quicker than using traditional `modelToView(int)` calls, as the entire bounding box isn't computed.

      Overrides:
        `yForLine` in class `RTextAreaUI`
      Parameters:
        `line` - The line number.
      Returns:
        The y-coordinate of the top of the line, or `-1` if this text area doesn't yet have a positive size or the line is hidden (i.e. from folding).
      Throws:
        `BadLocationException` - If `line` isn't a valid line number for this document.

    - #### yForLineContaining

          public int yForLineContaining​(int offs)
                                 throws BadLocationException

      Returns the y-coordinate of the line containing a specified offset.

      This is faster than calling `modelToView(offs).y`, so it is preferred if you do not need the actual bounding box.

      Overrides:
        `yForLineContaining` in class `RTextAreaUI`
      Parameters:
        `offs` - The offset info the document.
      Returns:
        The y-coordinate of the top of the offset, or `-1` if this text area doesn't yet have a positive size or the line is hidden (i.e. from folding).
      Throws:
        `BadLocationException` - If `offs` isn't a valid offset into the document.