org.fife.ui.rtextarea
Class FoldIndicator

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by org.fife.ui.rtextarea.FoldIndicator
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class FoldIndicator
extends javax.swing.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
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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
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
FoldIndicator(RTextArea textArea)
           
 
Method Summary
 javax.swing.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 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 Views tend to use Shape.
 java.awt.Color getFoldIconBackground()
          Returns the color to use for the "background" of fold icons.
protected  Gutter getGutter()
          Returns the parent Gutter component.
 java.awt.Dimension getPreferredSize()
           
 boolean getShowCollapsedRegionToolTips()
          Returns whether tool tips are displayed showing the contents of collapsed fold regions when the mouse hovers over a +/- icon.
 java.awt.Point getToolTipLocation(java.awt.event.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.
 java.lang.String getToolTipText(java.awt.event.MouseEvent e)
          Overridden to show the content of a collapsed fold on mouse-overs.
protected  void paintComponent(java.awt.Graphics g)
           
 void setFoldIconBackground(java.awt.Color bg)
          Sets the color to use for the "background" of fold icons.
 void setFoldIcons(javax.swing.Icon collapsedIcon, javax.swing.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, 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, 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, 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, setComponentOrientation, 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
 

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 javax.swing.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 javax.swing.JComponent
Returns:
The tool tip.

getFoldIconBackground

public java.awt.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 java.awt.Dimension getPreferredSize()
Overrides:
getPreferredSize in class javax.swing.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 java.awt.Point getToolTipLocation(java.awt.event.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 javax.swing.JComponent
Parameters:
e - The mouse location.

getToolTipText

public java.lang.String getToolTipText(java.awt.event.MouseEvent e)
Overridden to show the content of a collapsed fold on mouse-overs.

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

paintComponent

protected void paintComponent(java.awt.Graphics g)
Overrides:
paintComponent in class javax.swing.JComponent

setFoldIconBackground

public void setFoldIconBackground(java.awt.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(javax.swing.Icon collapsedIcon,
                         javax.swing.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 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 Views 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.