public class IconRowHeader
extends javax.swing.JPanel
implements java.awt.event.MouseListener
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);
FoldingAwareIconRowHeader,
Serialized Formjavax.swing.JPanel.AccessibleJPaneljavax.swing.JComponent.AccessibleJComponent| Modifier and Type | Field and Description |
|---|---|
protected int |
activeLineRangeEnd
The end line in the active line range.
|
protected int |
activeLineRangeStart
The first line in the active line range.
|
protected int |
currentLineCount
The number of lines in the text area.
|
protected RTextArea |
textArea
The text area whose lines we are marking with icons.
|
protected java.awt.Insets |
textAreaInsets
Used in
paintComponent(Graphics) to prevent reallocation on
each paint. |
protected java.util.List<org.fife.ui.rtextarea.IconRowHeader.GutterIconImpl> |
trackingIcons
The icons to render.
|
protected java.awt.Rectangle |
visibleRect
Used in
paintComponent(Graphics) to prevent reallocation on
each paint. |
protected int |
width
The width of this component.
|
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW| Constructor and Description |
|---|
IconRowHeader(RTextArea textArea)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
GutterIconInfo |
addOffsetTrackingIcon(int offs,
javax.swing.Icon icon)
Adds an icon that tracks an offset in the document, and is displayed
adjacent to the line numbers.
|
GutterIconInfo |
addOffsetTrackingIcon(int offs,
javax.swing.Icon icon,
java.lang.String tip)
Adds an icon that tracks an offset in the document, and is displayed
adjacent to the line numbers.
|
void |
clearActiveLineRange()
Clears the active line range.
|
java.awt.Color |
getActiveLineRangeColor()
Returns the color used to paint the active line range, if any.
|
javax.swing.Icon |
getBookmarkIcon()
Returns the icon to use for bookmarks.
|
GutterIconInfo[] |
getBookmarks()
Returns the bookmarks known to this gutter.
|
protected static java.awt.Rectangle |
getChildViewBounds(javax.swing.text.View parent,
int line,
java.awt.Rectangle editorRect)
Returns the bounds of a child view as a rectangle, since
Views tend to use Shape. |
protected Gutter |
getGutter()
Returns the parent
Gutter component. |
java.awt.Dimension |
getPreferredSize() |
java.lang.String |
getToolTipText(java.awt.event.MouseEvent e)
Overridden to display the tool tip of any icons on this line.
|
protected org.fife.ui.rtextarea.IconRowHeader.GutterIconImpl |
getTrackingIcon(int index) |
GutterIconInfo[] |
getTrackingIcons(int line)
Returns the tracking icons at the specified line.
|
protected void |
init()
Called by the constructor before the text area is set.
|
boolean |
isBookmarkingEnabled()
Returns whether bookmarking is enabled.
|
void |
mouseClicked(java.awt.event.MouseEvent e) |
void |
mouseEntered(java.awt.event.MouseEvent e) |
void |
mouseExited(java.awt.event.MouseEvent e) |
void |
mousePressed(java.awt.event.MouseEvent e) |
void |
mouseReleased(java.awt.event.MouseEvent e) |
protected void |
paintBackgroundImpl(java.awt.Graphics g,
java.awt.Rectangle visibleRect)
Paints the background of this component.
|
protected void |
paintComponent(java.awt.Graphics g) |
void |
removeAllTrackingIcons()
Removes all tracking icons.
|
void |
removeTrackingIcon(java.lang.Object tag)
Removes the specified tracking icon.
|
void |
setActiveLineRange(int startLine,
int endLine)
Highlights a range of lines in the icon area.
|
void |
setActiveLineRangeColor(java.awt.Color color)
Sets the color to use to render active line ranges.
|
void |
setBookmarkIcon(javax.swing.Icon icon)
Sets the icon to use for bookmarks.
|
void |
setBookmarkingEnabled(boolean enabled)
Sets whether bookmarking is enabled.
|
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).
|
void |
setTextArea(RTextArea textArea)
Sets the text area being displayed.
|
boolean |
toggleBookmark(int line)
Programatically toggles whether there is a bookmark for the specified
line.
|
void |
updateUI() |
getAccessibleContext, getUI, getUIClassID, paramString, setUIaddAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, updateadd, add, add, add, add, addContainerListener, addImpl, 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, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTreeaction, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, 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, 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, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, 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, transferFocusBackward, transferFocusUpCycleprotected java.util.List<org.fife.ui.rtextarea.IconRowHeader.GutterIconImpl> trackingIcons
protected int width
protected java.awt.Rectangle visibleRect
paintComponent(Graphics) to prevent reallocation on
each paint.protected java.awt.Insets textAreaInsets
paintComponent(Graphics) to prevent reallocation on
each paint.protected int activeLineRangeStart
protected int activeLineRangeEnd
protected RTextArea textArea
protected int currentLineCount
public IconRowHeader(RTextArea textArea)
textArea - The parent text area.public GutterIconInfo addOffsetTrackingIcon(int offs, javax.swing.Icon icon) throws javax.swing.text.BadLocationException
offs - The offset to track.icon - The icon to display. This should be small (say 16x16).javax.swing.text.BadLocationException - If offs is an invalid offset
into the text area.removeTrackingIcon(Object)public GutterIconInfo addOffsetTrackingIcon(int offs, javax.swing.Icon icon, java.lang.String tip) throws javax.swing.text.BadLocationException
offs - The offset to track.icon - The icon to display. This should be small (say 16x16).tip - A tool tip for the icon.javax.swing.text.BadLocationException - If offs is an invalid offset
into the text area.removeTrackingIcon(Object)public void clearActiveLineRange()
setActiveLineRange(int, int)public java.awt.Color getActiveLineRangeColor()
setActiveLineRangeColor(Color)public javax.swing.Icon getBookmarkIcon()
null,
bookmarking is effectively disabled.setBookmarkIcon(Icon),
isBookmarkingEnabled()public GutterIconInfo[] getBookmarks()
public java.awt.Dimension getPreferredSize()
getPreferredSize in class javax.swing.JComponentpublic java.lang.String getToolTipText(java.awt.event.MouseEvent e)
getToolTipText in class javax.swing.JComponente - The location the mouse is hovering over.protected org.fife.ui.rtextarea.IconRowHeader.GutterIconImpl getTrackingIcon(int index)
public GutterIconInfo[] getTrackingIcons(int line) throws javax.swing.text.BadLocationException
line - The line.javax.swing.text.BadLocationException - If line is invalid.protected void init()
public boolean isBookmarkingEnabled()
setBookmarkingEnabled(boolean)public void mouseClicked(java.awt.event.MouseEvent e)
mouseClicked in interface java.awt.event.MouseListenerpublic void mouseEntered(java.awt.event.MouseEvent e)
mouseEntered in interface java.awt.event.MouseListenerpublic void mouseExited(java.awt.event.MouseEvent e)
mouseExited in interface java.awt.event.MouseListenerpublic void mousePressed(java.awt.event.MouseEvent e)
mousePressed in interface java.awt.event.MouseListenerpublic void mouseReleased(java.awt.event.MouseEvent e)
mouseReleased in interface java.awt.event.MouseListenerprotected void paintComponent(java.awt.Graphics g)
paintComponent in class javax.swing.JComponentprotected void paintBackgroundImpl(java.awt.Graphics g,
java.awt.Rectangle visibleRect)
g - The graphics context.visibleRect - The visible bounds of this component.public void removeTrackingIcon(java.lang.Object tag)
tag - A tag for a tracking icon.removeAllTrackingIcons(),
addOffsetTrackingIcon(int, Icon)public void removeAllTrackingIcons()
public void setActiveLineRange(int startLine,
int endLine)
startLine - The start of the line range.endLine - The end of the line range.clearActiveLineRange()public void setActiveLineRangeColor(java.awt.Color color)
color - The color to use. If this is null, then the default
color is used.getActiveLineRangeColor(),
Gutter.DEFAULT_ACTIVE_LINE_RANGE_COLORpublic void setBookmarkIcon(javax.swing.Icon icon)
icon - The new bookmark icon. If this is null,
bookmarking is effectively disabled.getBookmarkIcon(),
isBookmarkingEnabled()public void setBookmarkingEnabled(boolean enabled)
setBookmarkIcon(Icon) before bookmarks are
truly enabled.enabled - Whether bookmarking is enabled. If this is
false, any bookmark icons are removed.isBookmarkingEnabled(),
setBookmarkIcon(Icon)public void setInheritsGutterBackground(boolean inherits)
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.public void setTextArea(RTextArea textArea)
textArea - The text area.public boolean toggleBookmark(int line)
throws javax.swing.text.BadLocationException
line - The line.javax.swing.text.BadLocationException - If line is an invalid line
number in the text area.public void updateUI()
updateUI in class javax.swing.JPanelprotected static final java.awt.Rectangle getChildViewBounds(javax.swing.text.View parent,
int line,
java.awt.Rectangle editorRect)
Views tend to use Shape.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.protected Gutter getGutter()
Gutter component.Gutter.