Class IconRowHeader

  • All Implemented Interfaces:
    MouseListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible
    Direct Known Subclasses:
    FoldingAwareIconRowHeader

    public class IconRowHeader
    extends JPanel
    implements MouseListener
    Renders icons in the Gutter. This can be used to visually mark lines containing syntax errors, lines with breakpoints set on them, etc.

    This component has built-in support for displaying icons representing "bookmarks;" that is, lines a user can cycle through via F2 and Shift+F2. Bookmarked lines are toggled via Ctrl+F2, or by clicking in the icon area at the line to bookmark. In order to enable bookmarking, you must first assign an icon to represent a bookmarked line, then actually enable the feature. This is actually done on the parent Gutter component:

     Gutter gutter = scrollPane.getGutter();
     gutter.setBookmarkIcon(new ImageIcon("bookmark.png"));
     gutter.setBookmarkingEnabled(true);
     
    See Also:
    FoldingAwareIconRowHeader, Serialized Form
    • Field Detail

      • trackingIcons

        protected List<org.fife.ui.rtextarea.IconRowHeader.GutterIconImpl> trackingIcons
        The icons to render.
      • width

        protected int width
        The width of this component.
      • activeLineRangeStart

        protected int activeLineRangeStart
        The first line in the active line range.
      • activeLineRangeEnd

        protected int activeLineRangeEnd
        The end line in the active line range.
      • textArea

        protected RTextArea textArea
        The text area whose lines we are marking with icons.
      • currentLineCount

        protected int currentLineCount
        The number of lines in the text area.
    • Constructor Detail

      • IconRowHeader

        public IconRowHeader​(RTextArea textArea)
        Constructor.
        Parameters:
        textArea - The parent text area.
    • Method Detail

      • addOffsetTrackingIcon

        public GutterIconInfo addOffsetTrackingIcon​(int offs,
                                                    Icon icon)
                                             throws BadLocationException
        Adds an icon that tracks an offset in the document, and is displayed adjacent to the line numbers. This is useful for marking things such as source code errors.
        Parameters:
        offs - The offset to track.
        icon - The icon to display. This should be small (say 16x16).
        Returns:
        A tag for this icon.
        Throws:
        BadLocationException - If offs is an invalid offset into the text area.
        See Also:
        removeTrackingIcon(Object)
      • addOffsetTrackingIcon

        public GutterIconInfo addOffsetTrackingIcon​(int offs,
                                                    Icon icon,
                                                    String tip)
                                             throws BadLocationException
        Adds an icon that tracks an offset in the document, and is displayed adjacent to the line numbers. This is useful for marking things such as source code errors.
        Parameters:
        offs - The offset to track.
        icon - The icon to display. This should be small (say 16x16).
        tip - A tool tip for the icon.
        Returns:
        A tag for this icon.
        Throws:
        BadLocationException - If offs is an invalid offset into the text area.
        See Also:
        removeTrackingIcon(Object)
      • getActiveLineRangeColor

        public Color getActiveLineRangeColor()
        Returns the color used to paint the active line range, if any.
        Returns:
        The color.
        See Also:
        setActiveLineRangeColor(Color)
      • getBookmarkIcon

        public Icon getBookmarkIcon()
        Returns the icon to use for bookmarks.
        Returns:
        The icon to use for bookmarks. If this is null, bookmarking is effectively disabled.
        See Also:
        setBookmarkIcon(Icon), isBookmarkingEnabled()
      • getBookmarks

        public GutterIconInfo[] getBookmarks()
        Returns the bookmarks known to this gutter.
        Returns:
        The bookmarks. If there are no bookmarks, an empty array is returned.
      • getToolTipText

        public String getToolTipText​(MouseEvent e)
        Overridden to display the tool tip of any icons on this line.
        Overrides:
        getToolTipText in class JComponent
        Parameters:
        e - The location the mouse is hovering over.
      • getTrackingIcon

        protected org.fife.ui.rtextarea.IconRowHeader.GutterIconImpl getTrackingIcon​(int index)
      • getTrackingIcons

        public GutterIconInfo[] getTrackingIcons​(int line)
                                          throws BadLocationException
        Returns the tracking icons at the specified line.
        Parameters:
        line - The line.
        Returns:
        The tracking icons at that line. If there are no tracking icons there, this will be an empty array.
        Throws:
        BadLocationException - If line is invalid.
      • init

        protected void init()
        Called by the constructor before the text area is set. This is a hook to allow subclasses to do any needed initialization. The default implementation does nothing.
      • isBookmarkingEnabled

        public boolean isBookmarkingEnabled()
        Returns whether bookmarking is enabled.
        Returns:
        Whether bookmarking is enabled.
        See Also:
        setBookmarkingEnabled(boolean)
      • paintBackgroundImpl

        protected void paintBackgroundImpl​(Graphics g,
                                           Rectangle visibleRect)
        Paints the background of this component.
        Parameters:
        g - The graphics context.
        visibleRect - The visible bounds of this component.
      • setActiveLineRange

        public void setActiveLineRange​(int startLine,
                                       int endLine)
        Highlights a range of lines in the icon area.
        Parameters:
        startLine - The start of the line range.
        endLine - The end of the line range.
        See Also:
        clearActiveLineRange()
      • setBookmarkIcon

        public void setBookmarkIcon​(Icon icon)
        Sets the icon to use for bookmarks. Any previous bookmark icons are removed.
        Parameters:
        icon - The new bookmark icon. If this is null, bookmarking is effectively disabled.
        See Also:
        getBookmarkIcon(), isBookmarkingEnabled()
      • setBookmarkingEnabled

        public void setBookmarkingEnabled​(boolean enabled)
        Sets whether bookmarking is enabled. Note that a bookmarking icon must be set via setBookmarkIcon(Icon) before bookmarks are truly enabled.
        Parameters:
        enabled - Whether bookmarking is enabled. If this is false, any bookmark icons are removed.
        See Also:
        isBookmarkingEnabled(), setBookmarkIcon(Icon)
      • setInheritsGutterBackground

        public void setInheritsGutterBackground​(boolean inherits)
        Sets whether the icon area inherits the gutter background (as opposed to painting with its own, default "panel" color, which is the default).
        Parameters:
        inherits - Whether the gutter background should be used in the icon row header. If this is false, a default, Look-and-feel-dependent color is used.
      • setTextArea

        public void setTextArea​(RTextArea textArea)
        Sets the text area being displayed. This will clear any tracking icons currently displayed.
        Parameters:
        textArea - The text area.
      • toggleBookmark

        public boolean toggleBookmark​(int line)
                               throws BadLocationException
        Programatically toggles whether there is a bookmark for the specified line. If bookmarking is not enabled, this method does nothing.
        Parameters:
        line - The line.
        Returns:
        Whether a bookmark is now at the specified line.
        Throws:
        BadLocationException - If line is an invalid line number in the text area.
      • updateUI

        public void updateUI()
        Overrides:
        updateUI in class JPanel
      • getChildViewBounds

        protected static final Rectangle getChildViewBounds​(View parent,
                                                            int line,
                                                            Rectangle editorRect)
        Returns the bounds of a child view as a rectangle, since Views tend to use Shape.
        Parameters:
        parent - The parent view of the child whose bounds we're getting.
        line - The index of the child view.
        editorRect - Returned from the text area's getVisibleEditorRect method.
        Returns:
        The child view's bounds.
      • getGutter

        protected Gutter getGutter()
        Returns the parent Gutter component.
        Returns:
        The parent Gutter.