processing.app.syntax
Class TextAreaPainter

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by processing.app.syntax.TextAreaPainter
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.awt.print.Printable, java.io.Serializable, javax.swing.text.TabExpander

public class TextAreaPainter
extends javax.swing.JComponent
implements javax.swing.text.TabExpander, java.awt.print.Printable

The text area repaint manager. It performs double buffering and paints lines of text.

See Also:
Serialized Form

Nested Class Summary
static interface TextAreaPainter.Highlight
          Highlight interface.
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Field Summary
 
Fields inherited from class javax.swing.JComponent
TOOL_TIP_TEXT_KEY, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.print.Printable
NO_SUCH_PAGE, PAGE_EXISTS
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
TextAreaPainter(JEditTextArea textArea, TextAreaDefaults defaults)
          Creates a new repaint manager.
 
Method Summary
 void addCustomHighlight(TextAreaPainter.Highlight highlight)
          Adds a custom highlight painter.
 java.awt.Color getBracketHighlightColor()
          Returns the bracket highlight color.
 java.awt.Color getCaretColor()
          Returns the caret color.
 javax.swing.text.Segment getCurrentLine()
          Accessor used by tools that want to hook in and grab the formatting.
 int getCurrentLineIndex()
          Accessor used by tools that want to hook in and grab the formatting.
 Token getCurrentLineTokens()
          Accessor used by tools that want to hook in and grab the formatting.
 java.awt.Color getEOLMarkerColor()
          Returns the EOL marker color.
 boolean getEOLMarkersPainted()
          Returns true if EOL markers are drawn, false otherwise.
 java.awt.FontMetrics getFontMetrics()
          Returns the font metrics used by this component.
 boolean getInvalidLinesPainted()
          Returns true if invalid lines are painted as red tildes (~), false otherwise.
 java.awt.Color getLineHighlightColor()
          Returns the line highlight color.
 java.awt.Dimension getMinimumSize()
          Returns the painter's minimum size.
 java.awt.Dimension getPreferredSize()
          Returns the painter's preferred size.
 java.awt.Color getSelectionColor()
          Returns the selection color.
 SyntaxStyle[] getStyles()
          Returns the syntax styles used to paint colorized text.
 java.lang.String getToolTipText(java.awt.event.MouseEvent evt)
          Returns the tool tip to display at the specified location.
 void invalidateLine(int line)
          Marks a line as needing a repaint.
 void invalidateLineRange(int firstLine, int lastLine)
          Marks a range of lines as needing a repaint.
 void invalidateSelectedLines()
          Repaints the lines containing the selection.
 boolean isBlockCaretEnabled()
          Returns true if the caret should be drawn as a block, false otherwise.
 boolean isBracketHighlightEnabled()
          Returns true if bracket highlighting is enabled, false otherwise.
 boolean isLineHighlightEnabled()
          Returns true if line highlight is enabled, false otherwise.
 boolean isManagingFocus()
          Returns if this component can be traversed by pressing the Tab key.
 float nextTabStop(float x, int tabOffset)
          Implementation of TabExpander interface.
 void paint(java.awt.Graphics gfx)
          Repaints the text.
 int print(java.awt.Graphics g, java.awt.print.PageFormat pageFormat, int pageIndex)
           
 void setBlockCaretEnabled(boolean blockCaret)
          Sets if the caret should be drawn as a block, false otherwise.
 void setBracketHighlightColor(java.awt.Color bracketHighlightColor)
          Sets the bracket highlight color.
 void setBracketHighlightEnabled(boolean bracketHighlight)
          Enables or disables bracket highlighting.
 void setCaretColor(java.awt.Color caretColor)
          Sets the caret color.
 void setCurrentLineIndex(int what)
          Accessor used by tools that want to hook in and grab the formatting.
 void setCurrentLineTokens(Token tokens)
          Accessor used by tools that want to hook in and grab the formatting.
 void setEOLMarkerColor(java.awt.Color eolMarkerColor)
          Sets the EOL marker color.
 void setEOLMarkersPainted(boolean eolMarkers)
          Sets if EOL markers are to be drawn.
 void setFont(java.awt.Font font)
          Sets the font for this component.
 void setInvalidLinesPainted(boolean paintInvalid)
          Sets if invalid lines are to be painted as red tildes.
 void setLineHighlightColor(java.awt.Color lineHighlightColor)
          Sets the line highlight color.
 void setLineHighlightEnabled(boolean lineHighlight)
          Enables or disables current line highlighting.
 void setSelectionColor(java.awt.Color selectionColor)
          Sets the selection color.
 void setStyles(SyntaxStyle[] styles)
          Sets the syntax styles used to paint colorized text.
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TextAreaPainter

public TextAreaPainter(JEditTextArea textArea,
                       TextAreaDefaults defaults)
Creates a new repaint manager. This should be not be called directly.

Method Detail

isManagingFocus

public final boolean isManagingFocus()
Returns if this component can be traversed by pressing the Tab key. This returns false.

Overrides:
isManagingFocus in class javax.swing.JComponent

getStyles

public final SyntaxStyle[] getStyles()
Returns the syntax styles used to paint colorized text. Entry n will be used to paint tokens with id = n.

See Also:
Token

setStyles

public final void setStyles(SyntaxStyle[] styles)
Sets the syntax styles used to paint colorized text. Entry n will be used to paint tokens with id = n.

Parameters:
styles - The syntax styles
See Also:
Token

getCaretColor

public final java.awt.Color getCaretColor()
Returns the caret color.


setCaretColor

public final void setCaretColor(java.awt.Color caretColor)
Sets the caret color.

Parameters:
caretColor - The caret color

getSelectionColor

public final java.awt.Color getSelectionColor()
Returns the selection color.


setSelectionColor

public final void setSelectionColor(java.awt.Color selectionColor)
Sets the selection color.

Parameters:
selectionColor - The selection color

getLineHighlightColor

public final java.awt.Color getLineHighlightColor()
Returns the line highlight color.


setLineHighlightColor

public final void setLineHighlightColor(java.awt.Color lineHighlightColor)
Sets the line highlight color.

Parameters:
lineHighlightColor - The line highlight color

isLineHighlightEnabled

public final boolean isLineHighlightEnabled()
Returns true if line highlight is enabled, false otherwise.


setLineHighlightEnabled

public final void setLineHighlightEnabled(boolean lineHighlight)
Enables or disables current line highlighting.

Parameters:
lineHighlight - True if current line highlight should be enabled, false otherwise

getBracketHighlightColor

public final java.awt.Color getBracketHighlightColor()
Returns the bracket highlight color.


setBracketHighlightColor

public final void setBracketHighlightColor(java.awt.Color bracketHighlightColor)
Sets the bracket highlight color.

Parameters:
bracketHighlightColor - The bracket highlight color

isBracketHighlightEnabled

public final boolean isBracketHighlightEnabled()
Returns true if bracket highlighting is enabled, false otherwise. When bracket highlighting is enabled, the bracket matching the one before the caret (if any) is highlighted.


setBracketHighlightEnabled

public final void setBracketHighlightEnabled(boolean bracketHighlight)
Enables or disables bracket highlighting. When bracket highlighting is enabled, the bracket matching the one before the caret (if any) is highlighted.

Parameters:
bracketHighlight - True if bracket highlighting should be enabled, false otherwise

isBlockCaretEnabled

public final boolean isBlockCaretEnabled()
Returns true if the caret should be drawn as a block, false otherwise.


setBlockCaretEnabled

public final void setBlockCaretEnabled(boolean blockCaret)
Sets if the caret should be drawn as a block, false otherwise.

Parameters:
blockCaret - True if the caret should be drawn as a block, false otherwise.

getEOLMarkerColor

public final java.awt.Color getEOLMarkerColor()
Returns the EOL marker color.


setEOLMarkerColor

public final void setEOLMarkerColor(java.awt.Color eolMarkerColor)
Sets the EOL marker color.

Parameters:
eolMarkerColor - The EOL marker color

getEOLMarkersPainted

public final boolean getEOLMarkersPainted()
Returns true if EOL markers are drawn, false otherwise.


setEOLMarkersPainted

public final void setEOLMarkersPainted(boolean eolMarkers)
Sets if EOL markers are to be drawn.

Parameters:
eolMarkers - True if EOL markers should be drawn, false otherwise

getInvalidLinesPainted

public boolean getInvalidLinesPainted()
Returns true if invalid lines are painted as red tildes (~), false otherwise.


setInvalidLinesPainted

public void setInvalidLinesPainted(boolean paintInvalid)
Sets if invalid lines are to be painted as red tildes.

Parameters:
paintInvalid - True if invalid lines should be drawn, false otherwise

addCustomHighlight

public void addCustomHighlight(TextAreaPainter.Highlight highlight)
Adds a custom highlight painter.

Parameters:
highlight - The highlight

getToolTipText

public java.lang.String getToolTipText(java.awt.event.MouseEvent evt)
Returns the tool tip to display at the specified location.

Overrides:
getToolTipText in class javax.swing.JComponent
Parameters:
evt - The mouse event

getFontMetrics

public java.awt.FontMetrics getFontMetrics()
Returns the font metrics used by this component.


setFont

public void setFont(java.awt.Font font)
Sets the font for this component. This is overridden to update the cached font metrics and to recalculate which lines are visible.

Overrides:
setFont in class javax.swing.JComponent
Parameters:
font - The font

paint

public void paint(java.awt.Graphics gfx)
Repaints the text.

Overrides:
paint in class javax.swing.JComponent
Parameters:
gfx - The graphics context

print

public int print(java.awt.Graphics g,
                 java.awt.print.PageFormat pageFormat,
                 int pageIndex)
Specified by:
print in interface java.awt.print.Printable

invalidateLine

public final void invalidateLine(int line)
Marks a line as needing a repaint.

Parameters:
line - The line to invalidate

invalidateLineRange

public final void invalidateLineRange(int firstLine,
                                      int lastLine)
Marks a range of lines as needing a repaint.

Parameters:
firstLine - The first line to invalidate
lastLine - The last line to invalidate

invalidateSelectedLines

public final void invalidateSelectedLines()
Repaints the lines containing the selection.


nextTabStop

public float nextTabStop(float x,
                         int tabOffset)
Implementation of TabExpander interface. Returns next tab stop after a specified point.

Specified by:
nextTabStop in interface javax.swing.text.TabExpander
Parameters:
x - The x co-ordinate
tabOffset - Ignored
Returns:
The next tab stop after x

getPreferredSize

public java.awt.Dimension getPreferredSize()
Returns the painter's preferred size.

Overrides:
getPreferredSize in class javax.swing.JComponent

getMinimumSize

public java.awt.Dimension getMinimumSize()
Returns the painter's minimum size.

Overrides:
getMinimumSize in class javax.swing.JComponent

getCurrentLineIndex

public int getCurrentLineIndex()
Accessor used by tools that want to hook in and grab the formatting.


setCurrentLineIndex

public void setCurrentLineIndex(int what)
Accessor used by tools that want to hook in and grab the formatting.


getCurrentLineTokens

public Token getCurrentLineTokens()
Accessor used by tools that want to hook in and grab the formatting.


setCurrentLineTokens

public void setCurrentLineTokens(Token tokens)
Accessor used by tools that want to hook in and grab the formatting.


getCurrentLine

public javax.swing.text.Segment getCurrentLine()
Accessor used by tools that want to hook in and grab the formatting.