org.fife.ui.rtextarea

## Class FoldIndicator

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

All Implemented Interfaces:
  ImageObserver, MenuContainer, Serializable, Accessible

    public class FoldIndicator
    extends JPanel

Component in the gutter that displays +/- icons to expand and collapse fold regions in the editor.

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`

### Constructor Summary

Constructors
Constructor and Description
`FoldIndicator(RTextArea textArea)`

### Method Summary

Methods
`JToolTip` `createToolTip()` Overridden to use the editor's background if it's detected that the user isn't using white as the editor bg, but the system's tool tip background is yellow-ish.
`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`.
`Color` `getFoldIconBackground()` Returns the color to use for the "background" of fold icons.
`protected Gutter` `getGutter()` Returns the parent `Gutter` component.
`Dimension` `getPreferredSize()`
`boolean` `getShowCollapsedRegionToolTips()` Returns whether tool tips are displayed showing the contents of collapsed fold regions when the mouse hovers over a +/- icon.
`Point` `getToolTipLocation(MouseEvent e)` Positions tool tips to be aligned in the text component, so that the displayed content is shown (almost) exactly where it would be in the editor.
`String` `getToolTipText(MouseEvent e)` Overridden to show the content of a collapsed fold on mouse-overs.
`protected void` `paintComponent(Graphics g)`
`void` `setFoldIconBackground(Color bg)` Sets the color to use for the "background" of fold icons.
`void` `setFoldIcons(Icon collapsedIcon, Icon expandedIcon)` Sets the icons to use to represent collapsed and expanded folds.
`void` `setShowCollapsedRegionToolTips(boolean show)` Toggles whether tool tips should be displayed showing the contents of collapsed fold regions when the mouse hovers over a +/- icon.
`void` `setTextArea(RTextArea textArea)` Overridden so we can track when code folding is enabled/disabled.

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

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

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

`addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, 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, 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, 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, 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

#### FoldIndicator

    public FoldIndicator(RTextArea textArea)

### Method Detail

#### createToolTip

    public JToolTip createToolTip()

Overridden to use the editor's background if it's detected that the user isn't using white as the editor bg, but the system's tool tip background is yellow-ish.

Overrides:
  `createToolTip` in class `JComponent`
Returns:
  The tool tip.

#### getFoldIconBackground

    public Color getFoldIconBackground()

Returns the color to use for the "background" of fold icons. This is be ignored if custom icons are used.

Returns:
  The background color.
See Also:
  `setFoldIconBackground(Color)`

#### getPreferredSize

    public Dimension getPreferredSize()

Overrides:
  `getPreferredSize` in class `JComponent`

#### getShowCollapsedRegionToolTips

    public boolean getShowCollapsedRegionToolTips()

Returns whether tool tips are displayed showing the contents of collapsed fold regions when the mouse hovers over a +/- icon.

Returns:
  Whether these tool tips are displayed.
See Also:
  `setShowCollapsedRegionToolTips(boolean)`

#### getToolTipLocation

    public Point getToolTipLocation(MouseEvent e)

Positions tool tips to be aligned in the text component, so that the displayed content is shown (almost) exactly where it would be in the editor.

Overrides:
  `getToolTipLocation` in class `JComponent`
Parameters:
  `e` - The mouse location.

#### getToolTipText

    public String getToolTipText(MouseEvent e)

Overridden to show the content of a collapsed fold on mouse-overs.

Overrides:
  `getToolTipText` in class `JComponent`
Parameters:
  `e` - The mouse location.

#### paintComponent

    protected void paintComponent(Graphics g)

Overrides:
  `paintComponent` in class `JComponent`

#### setFoldIconBackground

    public void setFoldIconBackground(Color bg)

Sets the color to use for the "background" of fold icons. This will be ignored if custom icons are used.

Parameters:
  `bg` - The new background color.
See Also:
  `getFoldIconBackground()`

#### setFoldIcons

    public void setFoldIcons(Icon collapsedIcon,
                    Icon expandedIcon)

Sets the icons to use to represent collapsed and expanded folds.

Parameters:
  `collapsedIcon` - The collapsed fold icon. This cannot be `null`.
  `expandedIcon` - The expanded fold icon. This cannot be `null`.

#### setShowCollapsedRegionToolTips

    public void setShowCollapsedRegionToolTips(boolean show)

Toggles whether tool tips should be displayed showing the contents of collapsed fold regions when the mouse hovers over a +/- icon.

Parameters:
  `show` - Whether to show these tool tips.
See Also:
  `getShowCollapsedRegionToolTips()`

#### setTextArea

    public void setTextArea(RTextArea textArea)

Overridden so we can track when code folding is enabled/disabled.

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