org.fife.ui.rtextarea
public class RTextAreaUI extends BasicTextAreaUI implements ViewFactory
RTextArea
. This UI takes into
account all of the "extras" involved in an RTextArea
, including
having a special caret (for insert and overwrite), background images,
highlighting the current line, etc.BasicTextUI.BasicCaret, BasicTextUI.BasicHighlighter
Constructor and Description |
---|
RTextAreaUI(JComponent textArea)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
View |
create(Element elem)
Creates the view for an element.
|
protected Caret |
createCaret()
Returns the default caret for an
RTextArea . |
protected Keymap |
createKeymap()
Creates the keymap for this text area.
|
protected ActionMap |
createRTextAreaActionMap()
Creates a default action map.
|
static ComponentUI |
createUI(JComponent textArea)
Creates a UI for an RTextArea.
|
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.
|
RTextArea |
getRTextArea()
Returns the text area for which we are the UI.
|
protected InputMap |
getRTextAreaInputMap()
Get the InputMap to use for the UI.
|
protected Rectangle |
getVisibleEditorRect()
Gets the allocation to give the root View.
|
protected void |
installDefaults() |
protected void |
installKeyboardActions() |
void |
installUI(JComponent c)
Installs this UI to the given text component.
|
protected void |
paintBackground(Graphics g) |
protected void |
paintCurrentLineHighlight(Graphics g,
Rectangle visibleRect)
Paints the highlighted current line, if it is enabled.
|
protected void |
paintLineHighlights(Graphics g)
Paints any line highlights.
|
protected void |
paintMarginLine(Graphics g,
Rectangle visibleRect)
Draws the "margin line" if enabled.
|
int |
yForLineContaining(int offs)
Returns the y-coordinate of the line containing an offset.
|
getBaseline, getBaselineResizeBehavior, getMinimumSize, getPreferredSize, getPropertyPrefix, propertyChange
create, createHighlighter, damageRange, damageRange, getComponent, getKeymapName, getMaximumSize, getNextVisualPositionFrom, getRootView, getToolTipText, installListeners, modelChanged, modelToView, modelToView, paint, paintSafely, setView, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, uninstallUI, update, viewToModel, viewToModel
contains, getAccessibleChild, getAccessibleChildrenCount
protected RTextArea textArea
public RTextAreaUI(JComponent textArea)
textArea
- An instance of RTextArea
.IllegalArgumentException
- If textArea
is not an
instance of RTextArea
.public static ComponentUI createUI(JComponent textArea)
textArea
- A text area.public View create(Element elem)
create
in interface ViewFactory
create
in class BasicTextAreaUI
elem
- The element.protected Caret createCaret()
RTextArea
. This caret is
capable of displaying itself differently for insert/overwrite modes.createCaret
in class BasicTextUI
protected Keymap createKeymap()
createKeymap
in class BasicTextUI
protected ActionMap createRTextAreaActionMap()
This isn't named createActionMap()
because there is a
package-private member by that name in BasicTextAreaUI
,
and some compilers will give warnings that we are not overriding that
method since it is package-private.
protected String getActionMapName()
public EditorKit getEditorKit(JTextComponent tc)
getEditorKit
in class BasicTextUI
tc
- the text component for which this UI is installedTextUI.getEditorKit(javax.swing.text.JTextComponent)
public RTextArea getRTextArea()
protected InputMap getRTextAreaInputMap()
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).
protected Rectangle getVisibleEditorRect()
getVisibleEditorRect
in class BasicTextUI
protected void installDefaults()
installDefaults
in class BasicTextAreaUI
protected void installKeyboardActions()
installKeyboardActions
in class BasicTextUI
public void installUI(JComponent c)
installUI
in class BasicTextUI
protected void paintBackground(Graphics g)
paintBackground
in class BasicTextUI
protected void paintCurrentLineHighlight(Graphics g, Rectangle visibleRect)
g
- The graphics context with which to paint.visibleRect
- The visible rectangle of the text area.protected void paintLineHighlights(Graphics g)
g
- The graphics context.protected void paintMarginLine(Graphics g, Rectangle visibleRect)
g
- The graphics context to paint with.visibleRect
- The visible rectangle of this text area.public int yForLineContaining(int offs) throws BadLocationException
The default implementation is equivalent to:
int line = textArea.getLineOfOffset(offs); int startOffs = textArea.getLineStartOffset(line); return modelToView(startOffs).ySubclasses that can calculate this value more quickly than traditional
BasicTextUI.modelToView(JTextComponent, int)
calls should override this
method to do so. This method may be used when the entire bounding box
isn't needed, to speed up rendering.offs
- The offset info the document.-1
if
this text area doesn't yet have a positive size.BadLocationException
- If offs
isn't a valid offset
into the document.