RSyntaxTextAreaUI
Date: 2017-02-11

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:
    javax.swing.text.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

      `javax.swing.plaf.basic.BasicTextUI.BasicCaret, javax.swing.plaf.basic.BasicTextUI.BasicHighlighter`

  - ### Field Summary

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

      `textArea`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RSyntaxTextAreaUI(javax.swing.JComponent rSyntaxTextArea)` Constructor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `javax.swing.text.View` | `create(javax.swing.text.Element elem)` Creates the view for an element.
    `protected javax.swing.text.Highlighter` | `createHighlighter()` Creates the highlighter to use for syntax text areas.
    `static javax.swing.plaf.ComponentUI` | `createUI(javax.swing.JComponent ta)`
    `protected java.lang.String` | `getActionMapName()` Returns the name to use to cache/fetch the shared action map.
    `javax.swing.text.EditorKit` | `getEditorKit(javax.swing.text.JTextComponent tc)` Fetches the EditorKit for the UI.
    `protected javax.swing.InputMap` | `getRTextAreaInputMap()` Get the InputMap to use for the UI.
    `protected void` | `paintEditorAugmentations(java.awt.Graphics g)` Paints editor augmentations added by RTextArea: highlighted lines, current line highlight, and margin line.
    `protected void` | `paintMatchedBracket(java.awt.Graphics g)` Paints the "matched bracket", if any.
    `protected void` | `paintMatchedBracketImpl(java.awt.Graphics g, RSyntaxTextArea rsta, java.awt.Rectangle r)`
    `protected void` | `propertyChange(java.beans.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, paint, setView, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, uninstallUI, update, viewToModel, viewToModel`

    - ### 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(javax.swing.JComponent rSyntaxTextArea)

      Constructor.

  - ### Method Detail

    - #### createUI

          public static javax.swing.plaf.ComponentUI createUI(javax.swing.JComponent ta)

    - #### create

          public javax.swing.text.View create(javax.swing.text.Element elem)

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

    - #### createHighlighter

          protected javax.swing.text.Highlighter createHighlighter()

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

    - #### getActionMapName

          protected java.lang.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 javax.swing.text.EditorKit getEditorKit(javax.swing.text.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 javax.swing.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(java.awt.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(java.awt.Graphics g)

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

    - #### paintMatchedBracketImpl

          protected void paintMatchedBracketImpl(java.awt.Graphics g,
                                     RSyntaxTextArea rsta,
                                     java.awt.Rectangle r)

    - #### propertyChange

          protected void propertyChange(java.beans.PropertyChangeEvent e)

      Gets called whenever a bound property is changed on this UI's `RSyntaxTextArea`.
      Overrides:
        `propertyChange` in class `javax.swing.plaf.basic.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 javax.swing.text.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:
        `javax.swing.text.BadLocationException` - If `line` isn't a valid line number for this document.

    - #### yForLineContaining

          public int yForLineContaining(int offs)
                                 throws javax.swing.text.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:
        `javax.swing.text.BadLocationException` - If `offs` isn't a valid offset into the document.