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.

Version:
  0.1
Author:
  Robert Futrell

### 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 and Description
`RSyntaxTextAreaUI(JComponent rSyntaxTextArea)` Constructor.

### Method Summary

Methods
`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` `paintBackground(Graphics g)` Paints the text area's background.
`protected void` `paintMatchedBracket(Graphics g)` Paints the "matched bracket", if any.
`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, paintCurrentLineHighlight, paintLineHighlights, paintMarginLine`

### 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, paintSafely, 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(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`

#### paintBackground

    protected void paintBackground(Graphics g)

Paints the text area's background.

Overrides:
  `paintBackground` in class `RTextAreaUI`
Parameters:
  `g` - The graphics component on which to paint.

#### paintMatchedBracket

    protected void paintMatchedBracket(Graphics g)

Paints the "matched bracket", if any.

Parameters:
  `g` - The graphics context.

#### 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.