Package org.fife.ui.rtextarea
Class RTextScrollPane
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JScrollPane
-
- org.fife.ui.rtextarea.RTextScrollPane
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
,javax.swing.ScrollPaneConstants
public class RTextScrollPane extends javax.swing.JScrollPane
An extension ofJScrollPane
that will only takeRTextArea
s (orjavax.swing.JLayer
s decoratingRTextArea
s) for its view. This class has the ability to show:- Line numbers
- Per-line icons (for bookmarks, debugging breakpoints, error markers, etc.)
- +/- icons to denote code folding regions.
Gutter
class. EachRTextScrollPane
has aGutter
instance that it uses as its row header. The gutter is only made visible when one of its features is being used (line numbering, folding, and/or icons).- Version:
- 1.0
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JScrollPane
javax.swing.JScrollPane.AccessibleJScrollPane, javax.swing.JScrollPane.ScrollBar
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description private Gutter
gutter
-
Fields inherited from class javax.swing.JScrollPane
columnHeader, horizontalScrollBar, horizontalScrollBarPolicy, lowerLeft, lowerRight, rowHeader, upperLeft, upperRight, verticalScrollBar, verticalScrollBarPolicy, viewport
-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
Fields inherited from interface javax.swing.ScrollPaneConstants
COLUMN_HEADER, HORIZONTAL_SCROLLBAR, HORIZONTAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_NEVER, HORIZONTAL_SCROLLBAR_POLICY, LOWER_LEADING_CORNER, LOWER_LEFT_CORNER, LOWER_RIGHT_CORNER, LOWER_TRAILING_CORNER, ROW_HEADER, UPPER_LEADING_CORNER, UPPER_LEFT_CORNER, UPPER_RIGHT_CORNER, UPPER_TRAILING_CORNER, VERTICAL_SCROLLBAR, VERTICAL_SCROLLBAR_ALWAYS, VERTICAL_SCROLLBAR_AS_NEEDED, VERTICAL_SCROLLBAR_NEVER, VERTICAL_SCROLLBAR_POLICY, VIEWPORT
-
-
Constructor Summary
Constructors Constructor Description RTextScrollPane()
Constructor.RTextScrollPane(java.awt.Component comp)
Creates a scroll pane.RTextScrollPane(java.awt.Component comp, boolean lineNumbers)
Creates a scroll pane.RTextScrollPane(java.awt.Component comp, boolean lineNumbers, java.awt.Color lineNumberColor)
Creates a scroll pane.RTextScrollPane(RTextArea textArea)
Creates a scroll pane.RTextScrollPane(RTextArea textArea, boolean lineNumbers)
Creates a scroll pane.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
checkGutterVisibility()
Ensures the gutter is visible if it's showing anything.private static RTextArea
getFirstRTextAreaDescendant(java.awt.Component comp)
Returns the first descendant of a component that is anRTextArea
.Gutter
getGutter()
Returns the gutter.boolean
getLineNumbersEnabled()
Returnstrue
if the line numbers are enabled and visible.RTextArea
getTextArea()
Returns the text area being displayed.boolean
isFoldIndicatorEnabled()
Returns whether the fold indicator is enabled.boolean
isIconRowHeaderEnabled()
Returns whether the icon row header is enabled.void
setFoldIndicatorEnabled(boolean enabled)
Toggles whether the fold indicator is enabled.void
setIconRowHeaderEnabled(boolean enabled)
Toggles whether the icon row header (used for breakpoints, bookmarks, etc.) is enabled.void
setLineNumbersEnabled(boolean enabled)
Toggles whether line numbers are visible.void
setViewportView(java.awt.Component view)
Sets the view for this scroll pane.-
Methods inherited from class javax.swing.JScrollPane
createHorizontalScrollBar, createVerticalScrollBar, createViewport, getAccessibleContext, getColumnHeader, getCorner, getHorizontalScrollBar, getHorizontalScrollBarPolicy, getRowHeader, getUI, getUIClassID, getVerticalScrollBar, getVerticalScrollBarPolicy, getViewport, getViewportBorder, getViewportBorderBounds, isValidateRoot, isWheelScrollingEnabled, paramString, setColumnHeader, setColumnHeaderView, setComponentOrientation, setCorner, setHorizontalScrollBar, setHorizontalScrollBarPolicy, setLayout, setRowHeader, setRowHeaderView, setUI, setVerticalScrollBar, setVerticalScrollBarPolicy, setViewport, setViewportBorder, setWheelScrollingEnabled, updateUI
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, 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, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, paint, paintBorder, paintChildren, paintComponent, 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, update
-
Methods inherited from class java.awt.Container
add, 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, transferFocusDownCycle, validate, validateTree
-
Methods inherited from class java.awt.Component
action, 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, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
gutter
private Gutter gutter
-
-
Constructor Detail
-
RTextScrollPane
public RTextScrollPane()
Constructor. If you use this constructor, you must callsetViewportView(Component)
and pass in anRTextArea
for this scroll pane to render line numbers properly.
-
RTextScrollPane
public RTextScrollPane(RTextArea textArea)
Creates a scroll pane. A default value will be used for line number color (gray), and the current line's line number will be highlighted.- Parameters:
textArea
- The text area this scroll pane will contain.
-
RTextScrollPane
public RTextScrollPane(java.awt.Component comp)
Creates a scroll pane. A default value will be used for line number color (gray), and the current line's line number will be highlighted.- Parameters:
comp
- The component this scroll pane should display. This should be an instance ofRTextArea
,javax.swing.JLayer
(or the olderorg.jdesktop.jxlayer.JXLayer
), ornull
. If this argument isnull
, you must callsetViewportView(Component)
, passing in an instance of one of the types above.
-
RTextScrollPane
public RTextScrollPane(RTextArea textArea, boolean lineNumbers)
Creates a scroll pane. A default value will be used for line number color (gray), and the current line's line number will be highlighted.- Parameters:
textArea
- The text area this scroll pane will contain. If this isnull
, you must callsetViewportView(Component)
, passing in anRTextArea
.lineNumbers
- Whether line numbers should be enabled.
-
RTextScrollPane
public RTextScrollPane(java.awt.Component comp, boolean lineNumbers)
Creates a scroll pane. A default value will be used for line number color (gray), and the current line's line number will be highlighted.- Parameters:
comp
- The component this scroll pane should display. This should be an instance ofRTextArea
,javax.swing.JLayer
(or the olderorg.jdesktop.jxlayer.JXLayer
), ornull
. If this argument isnull
, you must callsetViewportView(Component)
, passing in an instance of one of the types above.lineNumbers
- Whether line numbers should be enabled.
-
RTextScrollPane
public RTextScrollPane(java.awt.Component comp, boolean lineNumbers, java.awt.Color lineNumberColor)
Creates a scroll pane.- Parameters:
comp
- The component this scroll pane should display. This should be an instance ofRTextArea
,javax.swing.JLayer
(or the olderorg.jdesktop.jxlayer.JXLayer
), ornull
. If this argument isnull
, you must callsetViewportView(Component)
, passing in an instance of one of the types above.lineNumbers
- Whether line numbers are initially enabled.lineNumberColor
- The color to use for line numbers.
-
-
Method Detail
-
checkGutterVisibility
private void checkGutterVisibility()
Ensures the gutter is visible if it's showing anything.
-
getGutter
public Gutter getGutter()
Returns the gutter.- Returns:
- The gutter.
-
getLineNumbersEnabled
public boolean getLineNumbersEnabled()
Returnstrue
if the line numbers are enabled and visible.- Returns:
- Whether line numbers are visible.
- See Also:
setLineNumbersEnabled(boolean)
-
getTextArea
public RTextArea getTextArea()
Returns the text area being displayed.- Returns:
- The text area.
- See Also:
setViewportView(Component)
-
isFoldIndicatorEnabled
public boolean isFoldIndicatorEnabled()
Returns whether the fold indicator is enabled.- Returns:
- Whether the fold indicator is enabled.
- See Also:
setFoldIndicatorEnabled(boolean)
-
isIconRowHeaderEnabled
public boolean isIconRowHeaderEnabled()
Returns whether the icon row header is enabled.- Returns:
- Whether the icon row header is enabled.
- See Also:
setIconRowHeaderEnabled(boolean)
-
setFoldIndicatorEnabled
public void setFoldIndicatorEnabled(boolean enabled)
Toggles whether the fold indicator is enabled.- Parameters:
enabled
- Whether the fold indicator should be enabled.- See Also:
isFoldIndicatorEnabled()
-
setIconRowHeaderEnabled
public void setIconRowHeaderEnabled(boolean enabled)
Toggles whether the icon row header (used for breakpoints, bookmarks, etc.) is enabled.- Parameters:
enabled
- Whether the icon row header is enabled.- See Also:
isIconRowHeaderEnabled()
-
setLineNumbersEnabled
public void setLineNumbersEnabled(boolean enabled)
Toggles whether line numbers are visible.- Parameters:
enabled
- Whether line numbers should be visible.- See Also:
getLineNumbersEnabled()
-
setViewportView
public void setViewportView(java.awt.Component view)
Sets the view for this scroll pane. This must be anRTextArea
.- Overrides:
setViewportView
in classjavax.swing.JScrollPane
- Parameters:
view
- The new view.- See Also:
getTextArea()
-
getFirstRTextAreaDescendant
private static RTextArea getFirstRTextAreaDescendant(java.awt.Component comp)
Returns the first descendant of a component that is anRTextArea
. This is primarily here to supportjavax.swing.JLayer
s that wrapRTextArea
s.- Parameters:
comp
- The component to recursively look through.- Returns:
- The first descendant text area, or
null
if none is found.
-
-