Class FoldIndicator
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
org.fife.ui.rtextarea.AbstractGutterComponent
org.fife.ui.rtextarea.FoldIndicator
- All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible
Component in the gutter that displays +/- icons to expand and collapse
fold regions in the editor.
- Version:
- 1.0
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate classUpdates the alpha used for this component's "collapsed" fold icons, if necessary.private classListens for events in this component.Nested classes/interfaces inherited from class JPanel
JPanel.AccessibleJPanelNested classes/interfaces inherited from class JComponent
JComponent.AccessibleJComponentNested classes/interfaces inherited from class Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate intOptional additional left margin.private static final floatprivate FoldIndicator.AlphaRunnableUsed to update the collapsed fold icons' alpha value on a timer.private ColorThe color used for the foreground of armed folds.private static final intprivate FoldIndicatorIconThe icon used for collapsed folds.private floatThe alpha used for "collapsed" fold icons.static final ColorThe default color used to paint the "inside" of fold icons.static final ColorThe color used to paint fold outlines.private FoldIndicatorIconThe icon used for expanded folds.private ExpandedFoldRenderStrategyThe strategy to use when rendering expanded folds.private ColorThe color to use for armed fold icon backgrounds, if the default icons are used.private ColorThe color to use for fold icon backgrounds, if the default icons are used.private FoldThe fold to show the outline line for.private FoldIndicator.ListenerListens for events in this component.private booleanUsed while painting; global flag to denote whether the mouse is over a fold indicator.private booleanUsed while painting; global flag to denote whether the currently-being-painted fold should be rendered as armed.private booleanWhether the range of lines covered by an expanded, armed fold icon should be visually shown.private booleanWhether tool tips are displayed showing the contents of collapsed fold regions.private InsetsUsed inpaintComponent(Graphics)to prevent reallocation on each paint.private TimerThe timer used to update collapsed fold icons' alpha.private RectangleUsed inpaintComponent(Graphics)to prevent reallocation on each paint.Fields inherited from class AbstractGutterComponent
currentLineCount, textAreaFields inherited from class JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWFields inherited from class Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionOverridden 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.private FoldintReturns the amount of additional size to give the left margin of this component.Returns the foreground color used for armed folds.Returns the strategy to use for rendering expanded folds.Returns the color to use for the "background" of armed fold icons.Returns the color to use for the "background" of fold icons.private booleanReturns whether to paint expanded folds.booleanReturns whether a line should be drawn to show the range of lines contained in an expanded fold when it is armed (hovered over).booleanReturns whether tool tips are displayed showing the contents of collapsed fold regions when the mouse hovers over a +/- icon.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.Overridden to show the content of a collapsed fold on mouse-overs.(package private) voidgutterArmedUpdate(boolean armed) (package private) voidCalled when text is inserted to or removed from the text area.protected voidinit()Called by the constructor before the text area is set.(package private) voidCalled when the line heights of the text area change.protected voidprivate voidPaints folding icons when line wrapping is enabled.private voidpaintIcon(FoldIndicatorIcon icon, Graphics g, int x, int y, boolean collapsed) private introwAtPoint(Point p) voidsetAdditionalLeftMargin(int leftMargin) Adds to the amount of additional size to give the left margin of this component.voidSets the foreground color used for armed folds.private voidsetCollapsedFoldIconAlpha(float collapsedFoldIconAlpha) voidSets the strategy to use for rendering expanded folds.voidSets the color to use for the "background" of armed fold icons.voidSets the color to use for the "background" of fold icons.voidsetFoldIcons(FoldIndicatorIcon collapsedIcon, FoldIndicatorIcon expandedIcon) Sets the icons to use to represent collapsed and expanded folds.voidsetShowArmedFoldRange(boolean show) Toggles whether a line should be drawn to show the range of lines contained in an expanded fold when it is armed (hovered over).voidsetShowCollapsedRegionToolTips(boolean show) Toggles whether tool tips should be displayed showing the contents of collapsed fold regions when the mouse hovers over a +/- icon.(package private) voidsetStyle(FoldIndicatorStyle style) Toggles the presentation of this component.voidsetTextArea(RTextArea textArea) Overridden so we can track when code folding is enabled/disabled.Methods inherited from class AbstractGutterComponent
addNotify, getChildViewBounds, getGutter, removeNotifyMethods inherited from class JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUIMethods inherited from class JComponent
addAncestorListener, 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, 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, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, updateMethods inherited from class 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, validateTreeMethods inherited from class 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, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Field Details
-
textAreaInsets
Used inpaintComponent(Graphics)to prevent reallocation on each paint. -
visibleRect
Used inpaintComponent(Graphics)to prevent reallocation on each paint. -
foldWithOutlineShowing
The fold to show the outline line for. -
armedForeground
The color used for the foreground of armed folds. -
foldIconBackground
The color to use for fold icon backgrounds, if the default icons are used. -
foldIconArmedBackground
The color to use for armed fold icon backgrounds, if the default icons are used. This may benull. -
collapsedFoldIcon
The icon used for collapsed folds. -
expandedFoldIcon
The icon used for expanded folds. -
mouseOverFoldIcon
private boolean mouseOverFoldIconUsed while painting; global flag to denote whether the mouse is over a fold indicator. -
paintFoldArmed
private boolean paintFoldArmedUsed while painting; global flag to denote whether the currently-being-painted fold should be rendered as armed. -
showFoldRegionTips
private boolean showFoldRegionTipsWhether tool tips are displayed showing the contents of collapsed fold regions. -
showArmedFoldRange
private boolean showArmedFoldRangeWhether the range of lines covered by an expanded, armed fold icon should be visually shown. -
additionalLeftMargin
private int additionalLeftMarginOptional additional left margin. -
expandedFoldRenderStrategy
The strategy to use when rendering expanded folds. -
DEFAULT_FOREGROUND
The color used to paint fold outlines. -
DEFAULT_FOLD_BACKGROUND
The default color used to paint the "inside" of fold icons. -
collapsedFoldIconAlpha
private float collapsedFoldIconAlphaThe alpha used for "collapsed" fold icons. -
alphaRunnable
Used to update the collapsed fold icons' alpha value on a timer. -
timer
The timer used to update collapsed fold icons' alpha. -
listener
Listens for events in this component. -
COLLAPSED_FOLD_ALPHA_DELAY_MILLIS
private static final int COLLAPSED_FOLD_ALPHA_DELAY_MILLIS- See Also:
-
ALPHA_DELTA
private static final float ALPHA_DELTA- See Also:
-
-
Constructor Details
-
FoldIndicator
-
-
Method Details
-
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:
createToolTipin classJComponent- Returns:
- The tool tip.
-
getAdditionalLeftMargin
public int getAdditionalLeftMargin()Returns the amount of additional size to give the left margin of this component. This can be used to add blank space between this component and the line number indicator in the gutter.- Returns:
- The additional left margin.
- See Also:
-
findOpenFoldClosestTo
-
getArmedForeground
Returns the foreground color used for armed folds.- Returns:
- The foreground color used for armed folds.
- See Also:
-
getExpandedFoldRenderStrategy
Returns the strategy to use for rendering expanded folds.- Returns:
- The strategy to use for rendering expanded folds.
- See Also:
-
getFoldIconArmedBackground
Returns the color to use for the "background" of armed fold icons. This is ignored if custom icons are used.- Returns:
- The background color. If this is
null, there is no special color for armed fold icons. - See Also:
-
getFoldIconBackground
Returns the color to use for the "background" of fold icons. This is ignored if custom icons are used.- Returns:
- The background color.
- See Also:
-
getPaintExpandedFolds
private boolean getPaintExpandedFolds()Returns whether to paint expanded folds.- Returns:
- Whether to paint expanded folds.
-
getPreferredSize
- Overrides:
getPreferredSizein classJComponent
-
getShowArmedFoldRange
public boolean getShowArmedFoldRange()Returns whether a line should be drawn to show the range of lines contained in an expanded fold when it is armed (hovered over).- Returns:
- Whether to show an armed fold's range.
- See Also:
-
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:
-
getToolTipLocation
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:
getToolTipLocationin classJComponent- Parameters:
e- The mouse location.
-
getToolTipText
Overridden to show the content of a collapsed fold on mouse-overs.- Overrides:
getToolTipTextin classJComponent- Parameters:
e- The mouse location.
-
gutterArmedUpdate
void gutterArmedUpdate(boolean armed) -
handleDocumentEvent
Description copied from class:AbstractGutterComponentCalled when text is inserted to or removed from the text area. Implementations can take this opportunity to repaint, revalidate, etc.- Specified by:
handleDocumentEventin classAbstractGutterComponent- Parameters:
e- The document event.
-
init
protected void init()Description copied from class:AbstractGutterComponentCalled 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.- Overrides:
initin classAbstractGutterComponent
-
lineHeightsChanged
void lineHeightsChanged()Description copied from class:AbstractGutterComponentCalled when the line heights of the text area change. This is usually the result of one or more of the fonts in the editor changing.- Specified by:
lineHeightsChangedin classAbstractGutterComponent
-
paintComponent
- Overrides:
paintComponentin classJComponent
-
paintComponentWrapped
Paints folding icons when line wrapping is enabled.- Parameters:
g- The graphics context.
-
paintIcon
-
rowAtPoint
-
setAdditionalLeftMargin
public void setAdditionalLeftMargin(int leftMargin) Adds to the amount of additional size to give the left margin of this component. This can be used to add blank space between this component and the line number indicator in the gutter.- Parameters:
leftMargin- The additional left margin. This should be>= 0.- See Also:
-
setArmedForeground
Sets the foreground color used for armed folds.- Parameters:
fg- The new armed fold foreground.- See Also:
-
setCollapsedFoldIconAlpha
private void setCollapsedFoldIconAlpha(float collapsedFoldIconAlpha) -
setExpandedFoldRenderStrategy
Sets the strategy to use for rendering expanded folds.- Parameters:
strategy- The strategy to use. This cannot benull.- See Also:
-
setFoldIconArmedBackground
Sets the color to use for the "background" of armed fold icons. This will be ignored if custom icons are used.- Parameters:
bg- The new background color. Ifnullis passed in, there will be no special color for armed fold icons.- See Also:
-
setFoldIconBackground
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. This should not benull.- See Also:
-
setFoldIcons
Sets the icons to use to represent collapsed and expanded folds. This method can be used for further customization after setting this component's general appearance viasetStyle(FoldIndicatorStyle).- Parameters:
collapsedIcon- The collapsed fold icon. This cannot benull.expandedIcon- The expanded fold icon. This cannot benull.- See Also:
-
setShowArmedFoldRange
public void setShowArmedFoldRange(boolean show) Toggles whether a line should be drawn to show the range of lines contained in an expanded fold when it is armed (hovered over).- Parameters:
show- Whether to show an armed fold's range.- See Also:
-
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:
-
setStyle
Toggles the presentation of this component. This method sets the icons used for fold regions to default values, amongst other configuration. To further customize these icons, seesetFoldIcons(FoldIndicatorIcon, FoldIndicatorIcon).- Parameters:
style- The new presentation style.- See Also:
-
setTextArea
Overridden so we can track when code folding is enabled/disabled.- Overrides:
setTextAreain classAbstractGutterComponent- Parameters:
textArea- The text area.
-