Package com.illumon.iris.console.events
Class TextLineNumber
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
com.illumon.iris.console.events.TextLineNumber
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,PropertyChangeListener
,Serializable
,EventListener
,Accessible
,CaretListener
,DocumentListener
public class TextLineNumber
extends JPanel
implements CaretListener, DocumentListener, PropertyChangeListener
This class will display line numbers for a related text component. The text
component must use the same line height for each line. TextLineNumber
supports wrapped lines and will highlight the line number of the current
line in the text component.
This class was designed to be used as a component added to the row header
of a JScrollPane.
- See Also:
-
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
FieldsModifier and TypeFieldDescriptionstatic final float
static final float
static final float
Fields inherited from class javax.swing.JComponent
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
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, PROPERTIES, SOMEBITS, WIDTH
-
Constructor Summary
ConstructorsConstructorDescriptionTextLineNumber
(JTextComponent component) Create a line number component for a text component.TextLineNumber
(JTextComponent component, int minimumDisplayDigits) Create a line number component for a text component. -
Method Summary
Modifier and TypeMethodDescriptionvoid
void
int
Gets the border gapGets the current line rendering Colorfloat
Gets the digit alignmentint
Gets the minimum display digitsprotected String
getTextLineNumber
(int rowStartOffset) boolean
Gets the update font propertyvoid
void
Draw the line numbersvoid
void
void
setBorderGap
(int borderGap) The border gap is used in calculating the left and right insets of the border.void
setCurrentLineForeground
(Color currentLineForeground) The Color used to render the current line digits.void
setDigitAlignment
(float digitAlignment) Specify the horizontal alignment of the digits within the component.void
setMinimumDisplayDigits
(int minimumDisplayDigits) Specify the mimimum number of digits used to calculate the preferred width of the component.void
setUpdateFont
(boolean updateFont) Set the update font property.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, 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, getPreferredSize, 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, 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, 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
-
LEFT
public static final float LEFT- See Also:
-
CENTER
public static final float CENTER- See Also:
-
RIGHT
public static final float RIGHT- See Also:
-
-
Constructor Details
-
TextLineNumber
Create a line number component for a text component. This minimum display width will be based on 3 digits.- Parameters:
component
- the related text component
-
TextLineNumber
Create a line number component for a text component.- Parameters:
component
- the related text componentminimumDisplayDigits
- the number of digits used to calculate the minimum width of the component
-
-
Method Details
-
getUpdateFont
public boolean getUpdateFont()Gets the update font property- Returns:
- the update font property
-
setUpdateFont
public void setUpdateFont(boolean updateFont) Set the update font property. Indicates whether this Font should be updated automatically when the Font of the related text component is changed.- Parameters:
updateFont
- when true update the Font and repaint the line numbers, otherwise just repaint the line numbers.
-
getBorderGap
public int getBorderGap()Gets the border gap- Returns:
- the border gap in pixels
-
setBorderGap
public void setBorderGap(int borderGap) The border gap is used in calculating the left and right insets of the border. Default value is 5.- Parameters:
borderGap
- the gap in pixels
-
getCurrentLineForeground
Gets the current line rendering Color- Returns:
- the Color used to render the current line number
-
setCurrentLineForeground
The Color used to render the current line digits. Default is Coolor.RED.- Parameters:
currentLineForeground
- the Color used to render the current line
-
getDigitAlignment
public float getDigitAlignment()Gets the digit alignment- Returns:
- the alignment of the painted digits
-
setDigitAlignment
public void setDigitAlignment(float digitAlignment) Specify the horizontal alignment of the digits within the component. Common values would be:- TextLineNumber.LEFT
- TextLineNumber.CENTER
- TextLineNumber.RIGHT (default)
- Parameters:
digitAlignment
- the horizontal alignment of the digits within the component
-
getMinimumDisplayDigits
public int getMinimumDisplayDigits()Gets the minimum display digits- Returns:
- the minimum display digits
-
setMinimumDisplayDigits
public void setMinimumDisplayDigits(int minimumDisplayDigits) Specify the mimimum number of digits used to calculate the preferred width of the component. Default is 3.- Parameters:
minimumDisplayDigits
- the number digits used in the preferred width calculation
-
paintComponent
Draw the line numbers- Overrides:
paintComponent
in classJComponent
-
getTextLineNumber
-
caretUpdate
- Specified by:
caretUpdate
in interfaceCaretListener
-
changedUpdate
- Specified by:
changedUpdate
in interfaceDocumentListener
-
insertUpdate
- Specified by:
insertUpdate
in interfaceDocumentListener
-
removeUpdate
- Specified by:
removeUpdate
in interfaceDocumentListener
-
propertyChange
- Specified by:
propertyChange
in interfacePropertyChangeListener
-