org.fife.ui.rtextarea

## Class LineNumberList

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - javax.swing.JComponent
      - - javax.swing.JPanel
        - - org.fife.ui.rtextarea.LineNumberList

All Implemented Interfaces:
  MouseListener, MouseMotionListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, MouseInputListener

    public class LineNumberList
    extends JPanel
    implements MouseInputListener

Renders line numbers in the gutter.

Version:
  1.0
Author:
  Robert Futrell
See Also:
  Serialized Form

### Nested Class Summary

### Nested classes/interfaces inherited from class javax.swing.JPanel

`JPanel.AccessibleJPanel`

### Nested classes/interfaces inherited from class javax.swing.JComponent

`JComponent.AccessibleJComponent`

### Nested classes/interfaces inherited from class java.awt.Container

`Container.AccessibleAWTContainer`

### Nested classes/interfaces inherited from class java.awt.Component

`Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy`

### Field Summary

Fields
`protected int` `currentLineCount` The number of lines in the text area.
`protected RTextArea` `textArea` The text area whose lines we are marking with icons.

### 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 java.awt.image.ImageObserver

`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

### Constructor Summary

Constructors
Constructor and Description
`LineNumberList(RTextArea textArea)` Constructs a new `LineNumberList` using default values for line number color (gray) and highlighting the current line.
`LineNumberList(RTextArea textArea, Color numberColor)` Constructs a new `LineNumberList`.

### Method Summary

Methods
`void` `addNotify()` Overridden to set width of this component correctly when we are first displayed (as keying off of the RTextArea gives us (0,0) when it isn't yet displayed.
`protected static Rectangle` `getChildViewBounds(View parent, int line, Rectangle editorRect)` Returns the bounds of a child view as a rectangle, since `View`s tend to use `Shape`.
`protected Gutter` `getGutter()` Returns the parent `Gutter` component.
`int` `getLineNumberingStartIndex()` Returns the starting line's line number.
`Dimension` `getPreferredSize()`
`void` `mouseClicked(MouseEvent e)`
`void` `mouseDragged(MouseEvent e)`
`void` `mouseEntered(MouseEvent e)`
`void` `mouseExited(MouseEvent e)`
`void` `mouseMoved(MouseEvent e)`
`void` `mousePressed(MouseEvent e)`
`void` `mouseReleased(MouseEvent e)`
`protected void` `paintComponent(Graphics g)` Paints this component.
`void` `removeNotify()` Called when this component is removed from the view hierarchy.
`void` `setFont(Font font)` Overridden to ensure line number cell sizes are updated with the font size change.
`void` `setLineNumberingStartIndex(int index)` Sets the starting line's line number.
`void` `setTextArea(RTextArea textArea)` Sets the text area being displayed.

### Methods inherited from class javax.swing.JPanel

`getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI`

### Methods inherited from class javax.swing.JComponent

`addAncestorListener, 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, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, 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, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, 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, setLayout, 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, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### 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

#### LineNumberList

    public LineNumberList(RTextArea textArea)

Constructs a new `LineNumberList` using default values for line number color (gray) and highlighting the current line.

Parameters:
  `textArea` - The text component for which line numbers will be displayed.

#### LineNumberList

    public LineNumberList(RTextArea textArea,
                  Color numberColor)

Constructs a new `LineNumberList`.

Parameters:
  `textArea` - The text component for which line numbers will be displayed.
  `numberColor` - The color to use for the line numbers. If this is `null`, gray will be used.

### Method Detail

#### addNotify

    public void addNotify()

Overridden to set width of this component correctly when we are first displayed (as keying off of the RTextArea gives us (0,0) when it isn't yet displayed.

Overrides:
  `addNotify` in class `JComponent`

#### getLineNumberingStartIndex

    public int getLineNumberingStartIndex()

Returns the starting line's line number. The default value is `1`.

Returns:
  The index
See Also:
  `setLineNumberingStartIndex(int)`

#### getPreferredSize

    public Dimension getPreferredSize()

Overrides:
  `getPreferredSize` in class `JComponent`

#### mouseClicked

    public void mouseClicked(MouseEvent e)

Specified by:
  `mouseClicked` in interface `MouseListener`

#### mouseDragged

    public void mouseDragged(MouseEvent e)

Specified by:
  `mouseDragged` in interface `MouseMotionListener`

#### mouseEntered

    public void mouseEntered(MouseEvent e)

Specified by:
  `mouseEntered` in interface `MouseListener`

#### mouseExited

    public void mouseExited(MouseEvent e)

Specified by:
  `mouseExited` in interface `MouseListener`

#### mouseMoved

    public void mouseMoved(MouseEvent e)

Specified by:
  `mouseMoved` in interface `MouseMotionListener`

#### mousePressed

    public void mousePressed(MouseEvent e)

Specified by:
  `mousePressed` in interface `MouseListener`

#### mouseReleased

    public void mouseReleased(MouseEvent e)

Specified by:
  `mouseReleased` in interface `MouseListener`

#### paintComponent

    protected void paintComponent(Graphics g)

Paints this component.

Overrides:
  `paintComponent` in class `JComponent`
Parameters:
  `g` - The graphics context.

#### removeNotify

    public void removeNotify()

Called when this component is removed from the view hierarchy.

Overrides:
  `removeNotify` in class `JComponent`

#### setFont

    public void setFont(Font font)

Overridden to ensure line number cell sizes are updated with the font size change.

Overrides:
  `setFont` in class `JComponent`
Parameters:
  `font` - The new font to use for line numbers.

#### setLineNumberingStartIndex

    public void setLineNumberingStartIndex(int index)

Sets the starting line's line number. The default value is `1`. Applications can call this method to change this value if they are displaying a subset of lines in a file, for example.

Parameters:
  `index` - The new index.
See Also:
  `getLineNumberingStartIndex()`

#### setTextArea

    public void setTextArea(RTextArea textArea)

Sets the text area being displayed.

Parameters:
  `textArea` - The text area.

#### getChildViewBounds

    protected static final Rectangle getChildViewBounds(View parent,
                               int line,
                               Rectangle editorRect)

Returns the bounds of a child view as a rectangle, since `View`s 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`.