LineNumberList
Date: 2017-02-11

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:
    java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.MouseInputListener

      public class LineNumberList
      extends javax.swing.JPanel
      implements javax.swing.event.MouseInputListener

  Renders line numbers in the gutter.
  See Also:
    Serialized Form

- - ### Nested Class Summary

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

      `javax.swing.JPanel.AccessibleJPanel`

    - ### 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.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `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, java.awt.Color numberColor)` Constructs a new `LineNumberList`.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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 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 `View`s tend to use `Shape`.
    `protected Gutter` | `getGutter()` Returns the parent `Gutter` component.
    `int` | `getLineNumberingStartIndex()` Returns the starting line's line number.
    `java.awt.Dimension` | `getPreferredSize()`
    `protected void` | `init()` Called by the constructor before the text area is set.
    `void` | `mouseClicked(java.awt.event.MouseEvent e)`
    `void` | `mouseDragged(java.awt.event.MouseEvent e)`
    `void` | `mouseEntered(java.awt.event.MouseEvent e)`
    `void` | `mouseExited(java.awt.event.MouseEvent e)`
    `void` | `mouseMoved(java.awt.event.MouseEvent e)`
    `void` | `mousePressed(java.awt.event.MouseEvent e)`
    `void` | `mouseReleased(java.awt.event.MouseEvent e)`
    `protected void` | `paintComponent(java.awt.Graphics g)` Paints this component.
    `void` | `removeNotify()` Called when this component is removed from the view hierarchy.
    `void` | `setFont(java.awt.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, 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, 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, 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,
                        java.awt.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 `javax.swing.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 java.awt.Dimension getPreferredSize()

      Overrides:
        `getPreferredSize` in class `javax.swing.JComponent`

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

    - #### mouseClicked

          public void mouseClicked(java.awt.event.MouseEvent e)

      Specified by:
        `mouseClicked` in interface `java.awt.event.MouseListener`

    - #### mouseDragged

          public void mouseDragged(java.awt.event.MouseEvent e)

      Specified by:
        `mouseDragged` in interface `java.awt.event.MouseMotionListener`

    - #### mouseEntered

          public void mouseEntered(java.awt.event.MouseEvent e)

      Specified by:
        `mouseEntered` in interface `java.awt.event.MouseListener`

    - #### mouseExited

          public void mouseExited(java.awt.event.MouseEvent e)

      Specified by:
        `mouseExited` in interface `java.awt.event.MouseListener`

    - #### mouseMoved

          public void mouseMoved(java.awt.event.MouseEvent e)

      Specified by:
        `mouseMoved` in interface `java.awt.event.MouseMotionListener`

    - #### mousePressed

          public void mousePressed(java.awt.event.MouseEvent e)

      Specified by:
        `mousePressed` in interface `java.awt.event.MouseListener`

    - #### mouseReleased

          public void mouseReleased(java.awt.event.MouseEvent e)

      Specified by:
        `mouseReleased` in interface `java.awt.event.MouseListener`

    - #### paintComponent

          protected void paintComponent(java.awt.Graphics g)

      Paints this component.
      Overrides:
        `paintComponent` in class `javax.swing.JComponent`
      Parameters:
        `g` - The graphics context.

    - #### removeNotify

          public void removeNotify()

      Called when this component is removed from the view hierarchy.
      Overrides:
        `removeNotify` in class `javax.swing.JComponent`

    - #### setFont

          public void setFont(java.awt.Font font)

      Overridden to ensure line number cell sizes are updated with the font size change.
      Overrides:
        `setFont` in class `javax.swing.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 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 `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`.