org.fife.ui.rtextarea
Class RTextScrollPane

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JScrollPane
                  extended by 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 of JScrollPane that will only take RTextAreas (or javax.swing.JLayers decorating RTextAreas) for its view. This class has the ability to show:

The actual "meat" of these extras is contained in the Gutter class. Each RTextScrollPane has a Gutter 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
Author:
Robert Futrell
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
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
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
accessibleContext, 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
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
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
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
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.
 
Method Summary
 Gutter getGutter()
          Returns the gutter.
 boolean getLineNumbersEnabled()
          Returns true 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 or not 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, 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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, 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, transferFocusBackward, 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, 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, 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, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

RTextScrollPane

public RTextScrollPane()
Constructor. If you use this constructor, you must call setViewportView(Component) and pass in an RTextArea for this scroll pane to render line numbers properly.


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 of RTextArea, javax.swing.JLayer (or the older org.jdesktop.jxlayer.JXLayer), or null. If this argument is null, you must call setViewportView(Component), passing in an instance of one of the types above.

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 of RTextArea, javax.swing.JLayer (or the older org.jdesktop.jxlayer.JXLayer), or null. If this argument is null, you must call setViewportView(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 of RTextArea, javax.swing.JLayer (or the older org.jdesktop.jxlayer.JXLayer), or null. If this argument is null, you must call setViewportView(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

getGutter

public Gutter getGutter()
Returns the gutter.

Returns:
The gutter.

getLineNumbersEnabled

public boolean getLineNumbersEnabled()
Returns true if the line numbers are enabled and visible.

Returns:
Whether or not 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 or not line numbers are visible.

Parameters:
enabled - Whether or not 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 an RTextArea.

Overrides:
setViewportView in class javax.swing.JScrollPane
Parameters:
view - The new view.
See Also:
getTextArea()