Module jEdit

Class TextAreaPainter

All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, TabExpander

public class TextAreaPainter extends JComponent implements TabExpander
The text area painter is the component responsible for displaying the text of the current buffer. The only methods in this class that should be called by plugins are those for adding and removing text area extensions.
Version:
$Id: TextAreaPainter.java 25251 2020-04-15 22:07:47Z kpouer $
Author:
Slava Pestov
See Also:
  • Field Details

    • LOWEST_LAYER

      public static final int LOWEST_LAYER
      The lowest possible layer.
      Since:
      jEdit 4.0pre4
      See Also:
    • BACKGROUND_LAYER

      public static final int BACKGROUND_LAYER
      Below selection layer. The JDiff plugin will use this.
      Since:
      jEdit 4.0pre4
      See Also:
    • LINE_BACKGROUND_LAYER

      public static final int LINE_BACKGROUND_LAYER
      The line highlight and collapsed fold highlight layer.
      Since:
      jEdit 4.0pre7
      See Also:
    • BELOW_SELECTION_LAYER

      public static final int BELOW_SELECTION_LAYER
      Below selection layer.
      Since:
      jEdit 4.0pre4
      See Also:
    • SELECTION_LAYER

      public static final int SELECTION_LAYER
      Selection layer. Most extensions will be above this layer, but some (eg, JDiff) will want to be below the selection.
      Since:
      jEdit 4.0pre4
      See Also:
    • WRAP_GUIDE_LAYER

      public static final int WRAP_GUIDE_LAYER
      Wrap guide layer. Most extensions will be above this layer.
      Since:
      jEdit 4.0pre4
      See Also:
    • BELOW_MOST_EXTENSIONS_LAYER

      public static final int BELOW_MOST_EXTENSIONS_LAYER
      Below most extensions layer.
      Since:
      jEdit 4.0pre4
      See Also:
    • DEFAULT_LAYER

      public static final int DEFAULT_LAYER
      Default extension layer. This is above the wrap guide but below the structure highlight.
      Since:
      jEdit 4.0pre4
      See Also:
    • BLOCK_CARET_LAYER

      public static final int BLOCK_CARET_LAYER
      Block caret layer. Most extensions will be below this layer.
      Since:
      jEdit 4.2pre1
      See Also:
    • BRACKET_HIGHLIGHT_LAYER

      public static final int BRACKET_HIGHLIGHT_LAYER
      Bracket highlight layer. Most extensions will be below this layer.
      Since:
      jEdit 4.0pre4
      See Also:
    • TEXT_LAYER

      public static final int TEXT_LAYER
      Text layer. Most extensions will be below this layer.
      Since:
      jEdit 4.2pre1
      See Also:
    • CARET_LAYER

      public static final int CARET_LAYER
      Caret layer. Most extensions will be below this layer.
      Since:
      jEdit 4.2pre1
      See Also:
    • HIGHEST_LAYER

      public static final int HIGHEST_LAYER
      Highest possible layer.
      Since:
      jEdit 4.0pre4
      See Also:
  • Method Details

    • setBounds

      public void setBounds(int x, int y, int width, int height)
      It is a bad idea to override this, but we need to get the component event before the first repaint.
      Overrides:
      setBounds in class Component
    • addNotify

      public void addNotify()
      Overrides:
      addNotify in class JComponent
    • setCursor

      public void setCursor(Cursor cursor)
      Change the mouse cursor. If the cursor is hiddenCursor or TEXT_CURSOR, it is the default cursor and the cursor will not disappear anymore while typing until resetCursor() is called.
      Overrides:
      setCursor in class Component
      Parameters:
      cursor - the new cursor
      Since:
      jEdit 4.4pre1
    • resetCursor

      public void resetCursor()
      Reset the cursor to it's default value.
      Since:
      jEdit 4.4pre1
    • getFocusTraversalKeysEnabled

      public boolean getFocusTraversalKeysEnabled()
      Makes the tab key work in Java 1.4.
      Overrides:
      getFocusTraversalKeysEnabled in class Component
      Since:
      jEdit 3.2pre4
    • 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.
      Returns:
      an array of SyntaxStyles
      See Also:
    • 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:
    • getCaretColor

      public final Color getCaretColor()
      Returns the caret color.
    • setCaretColor

      public final void setCaretColor(Color caretColor)
      Sets the caret color.
      Parameters:
      caretColor - The caret color
    • getSelectionColor

      public final Color getSelectionColor()
      Returns the selection color.
    • setSelectionColor

      public final void setSelectionColor(Color selectionColor)
      Sets the selection color.
      Parameters:
      selectionColor - The selection color
    • getMultipleSelectionColor

      public final Color getMultipleSelectionColor()
      Returns the multiple selection color.
      Since:
      jEdit 4.2pre1
    • setMultipleSelectionColor

      public final void setMultipleSelectionColor(Color multipleSelectionColor)
      Sets the multiple selection color.
      Parameters:
      multipleSelectionColor - The multiple selection color
      Since:
      jEdit 4.2pre1
    • getLineHighlightColor

      public final Color getLineHighlightColor()
      Returns the line highlight color.
    • setLineHighlightColor

      public final void setLineHighlightColor(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
    • getSelectionFgColor

      public final Color getSelectionFgColor()
      Returns the selection foreground color, if one is set.
      Since:
      jEdit 4.4.1
    • setSelectionFgColor

      public final void setSelectionFgColor(Color selectionFgColor)
      Sets the selection foreground color.
      Parameters:
      selectionFgColor - The selection foreground color
      Since:
      jEdit 4.4.1
    • isSelectionFgColorEnabled

      public final boolean isSelectionFgColorEnabled()
      Returns true if selection foreground color is enabled - i.e. a specific color is used for the selection foreground instead of the syntax highlight color.
      Since:
      jEdit 4.4.1
    • setSelectionFgColorEnabled

      public final void setSelectionFgColorEnabled(boolean selectionFg)
      Enables or disables selection foreground color.
      Parameters:
      selectionFg - True if selection foreground should be enabled, false otherwise
      Since:
      jEdit 4.4.1
    • getStructureHighlightColor

      public final Color getStructureHighlightColor()
      Returns the structure highlight color.
      Since:
      jEdit 4.2pre3
    • setStructureHighlightColor

      public final void setStructureHighlightColor(Color structureHighlightColor)
      Sets the structure highlight color.
      Parameters:
      structureHighlightColor - The bracket highlight color
      Since:
      jEdit 4.2pre3
    • isStructureHighlightEnabled

      public final boolean isStructureHighlightEnabled()
      Returns true if structure highlighting is enabled, false otherwise.
      Since:
      jEdit 4.2pre3
    • setStructureHighlightEnabled

      public final void setStructureHighlightEnabled(boolean structureHighlight)
      Enables or disables structure highlighting.
      Parameters:
      structureHighlight - True if structure highlighting should be enabled, false otherwise
      Since:
      jEdit 4.2pre3
    • 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.
    • isThickCaretEnabled

      public final boolean isThickCaretEnabled()
      Returns true if the caret should be drawn with a thick line, false otherwise.
      Since:
      jEdit 4.3pre15
    • setThickCaretEnabled

      public final void setThickCaretEnabled(boolean thickCaret)
      Sets if the caret should be drawn with a thick line.
      Parameters:
      thickCaret - True if the caret should be drawn as a block, false otherwise.
      Since:
      jEdit 4.3pre15
    • getEOLMarkerChar

      public String getEOLMarkerChar()
    • setEOLMarkerChar

      public void setEOLMarkerChar(String emc)
    • getEOLMarkerColor

      public final Color getEOLMarkerColor()
      Returns the EOL marker color.
    • setEOLMarkerColor

      public final void setEOLMarkerColor(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
    • getWrapGuideColor

      public final Color getWrapGuideColor()
      Returns the wrap guide color.
    • setWrapGuideColor

      public final void setWrapGuideColor(Color wrapGuideColor)
      Sets the wrap guide color.
      Parameters:
      wrapGuideColor - The wrap guide color
    • isWrapGuidePainted

      public final boolean isWrapGuidePainted()
      Returns true if the wrap guide is drawn, false otherwise.
      Since:
      jEdit 4.0pre4
    • setWrapGuidePainted

      public final void setWrapGuidePainted(boolean wrapGuide)
      Sets if the wrap guide is to be drawn.
      Parameters:
      wrapGuide - True if the wrap guide should be drawn, false otherwise
    • getFoldLineStyle

      public final SyntaxStyle[] getFoldLineStyle()
      Returns the fold line style. The first element is the style for lines with a fold level greater than 3. The remaining elements are for fold levels 1 to 3.
    • setFoldLineStyle

      public final void setFoldLineStyle(SyntaxStyle[] foldLineStyle)
      Sets the fold line style. The first element is the style for lines with a fold level greater than 3. The remaining elements are for fold levels 1 to 3.
      Parameters:
      foldLineStyle - The fold line style
    • setAntiAlias

      public void setAntiAlias(AntiAlias newValue)
      As of jEdit 4.3, subpixel antialias mode is supported.
      Since:
      jEdit 4.2pre4
    • getAntiAlias

      public AntiAlias getAntiAlias()
      Returns:
      the AntiAlias value that is currently used for TextAreas.
      Since:
      jedit 4.3pre4
    • setFractionalFontMetricsEnabled

      public void setFractionalFontMetricsEnabled(boolean fracFontMetrics)
      Sets if fractional font metrics should be enabled. Has no effect when running on Java 1.1.
      Since:
      jEdit 3.2pre6
    • isFractionalFontMetricsEnabled

      public boolean isFractionalFontMetricsEnabled()
      Returns if fractional font metrics are enabled.
      Since:
      jEdit 3.2pre6
    • getFontRenderContext

      public FontRenderContext getFontRenderContext()
      Returns the font render context.
      Since:
      jEdit 4.0pre4
    • addExtension

      public void addExtension(TextAreaExtension extension)
      Adds a text area extension, which can perform custom painting and tool tip handling.
      Parameters:
      extension - The extension
      Since:
      jEdit 4.0pre4
    • addExtension

      public void addExtension(int layer, TextAreaExtension extension)
      Adds a text area extension, which can perform custom painting and tool tip handling.
      Parameters:
      layer - The layer to add the extension to. Note that more than extension can share the same layer.
      extension - The extension
      Since:
      jEdit 4.0pre4
    • removeExtension

      public void removeExtension(TextAreaExtension extension)
      Removes a text area extension. It will no longer be asked to perform custom painting and tool tip handling.
      Parameters:
      extension - The extension
      Since:
      jEdit 4.0pre4
    • getExtensions

      public TextAreaExtension[] getExtensions()
      Returns an array of registered text area extensions. Useful for debugging purposes.
      Since:
      jEdit 4.1pre5
    • getToolTipText

      public String getToolTipText(MouseEvent evt)
      Returns the tool tip to display at the specified location.
      Overrides:
      getToolTipText in class JComponent
      Parameters:
      evt - The mouse event
    • getFontMetrics

      public FontMetrics getFontMetrics()
      Returns the font metrics used by this component.
    • getLineHeight

      public int getLineHeight()
      Returns the line height as given by the font metrics plus the added line spacing.
    • getFontHeight

      public int getFontHeight()
      Returns the font height as given by the font metrics.
    • getLineExtraSpacing

      public int getLineExtraSpacing()
      Returns the number of pixels from the start of the line to the start of text (the extra line spacing).
    • setLineExtraSpacing

      public void setLineExtraSpacing(int spacing)
      Sets extra spacing between lines in pixels.
    • setFont

      public void setFont(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 JComponent
      Parameters:
      font - The font
    • getStringWidth

      public float getStringWidth(String str)
      Returns the width of the given string, in pixels, using the text area's current font.
      Since:
      jEdit 4.2final
    • getRenderingHints

      public RenderingHints getRenderingHints()
      Returns the rendering hints used by the Graphics2D class; in this case, for anti-aliasing of text.
      Since:
      jEdit 4.5pre1
    • update

      public void update(Graphics _gfx)
      Repaints the text.
      Overrides:
      update in class JComponent
      Parameters:
      _gfx - The graphics context
    • paint

      public void paint(Graphics _gfx)
      Repaints the text.
      Overrides:
      paint in class JComponent
      Parameters:
      _gfx - The graphics context
    • 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 TabExpander
      Parameters:
      x - The x co-ordinate
      tabOffset - Ignored
      Returns:
      The next tab stop after x
    • getPreferredSize

      public Dimension getPreferredSize()
      Returns the painter's preferred size.
      Overrides:
      getPreferredSize in class JComponent
    • getMinimumSize

      public Dimension getMinimumSize()
      Returns the painter's minimum size.
      Overrides:
      getMinimumSize in class JComponent