public class TextLineNumber
extends javax.swing.JPanel
implements javax.swing.event.CaretListener, javax.swing.event.DocumentListener, java.beans.PropertyChangeListener
javax.swing.JPanel.AccessibleJPaneljavax.swing.JComponent.AccessibleJComponent| Modifier and Type | Field and Description |
|---|---|
private int |
borderGap |
static float |
CENTER |
private javax.swing.text.JTextComponent |
component |
private java.awt.Color |
currentLineForeground |
private float |
digitAlignment |
private java.util.HashMap<java.lang.String,java.awt.FontMetrics> |
fonts |
private static int |
HEIGHT |
private int |
lastDigits |
private int |
lastHeight |
private int |
lastLine |
static float |
LEFT |
private int |
minimumDisplayDigits |
private static javax.swing.border.Border |
OUTER |
static float |
RIGHT |
private boolean |
updateFont |
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW| Constructor and Description |
|---|
TextLineNumber(javax.swing.text.JTextComponent component)
Create a line number component for a text component.
|
TextLineNumber(javax.swing.text.JTextComponent component,
int minimumDisplayDigits)
Create a line number component for a text component.
|
| Modifier and Type | Method and Description |
|---|---|
void |
caretUpdate(javax.swing.event.CaretEvent e) |
void |
changedUpdate(javax.swing.event.DocumentEvent e) |
private void |
documentChanged() |
int |
getBorderGap()
Gets the border gap
|
java.awt.Color |
getCurrentLineForeground()
Gets the current line rendering Color
|
float |
getDigitAlignment()
Gets the digit alignment
|
int |
getMinimumDisplayDigits()
Gets the minimum display digits
|
private int |
getOffsetX(int availableWidth,
int stringWidth) |
private int |
getOffsetY(int rowStartOffset,
java.awt.FontMetrics fontMetrics) |
protected java.lang.String |
getTextLineNumber(int rowStartOffset) |
boolean |
getUpdateFont()
Gets the update font property
|
void |
insertUpdate(javax.swing.event.DocumentEvent e) |
private boolean |
isCurrentLine(int rowStartOffset) |
void |
paintComponent(java.awt.Graphics g)
Draw the line numbers
|
void |
propertyChange(java.beans.PropertyChangeEvent evt) |
void |
removeUpdate(javax.swing.event.DocumentEvent e) |
void |
setBorderGap(int borderGap)
The border gap is used in calculating the left and right insets of the
border.
|
void |
setCurrentLineForeground(java.awt.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.
|
private void |
setPreferredWidth()
Calculate the width needed to display the maximum line number
|
void |
setUpdateFont(boolean updateFont)
Set the update font property.
|
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUIaddAncestorListener, 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, updateadd, 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, validateTreeaction, 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, transferFocusUpCyclepublic static final float LEFT
public static final float CENTER
public static final float RIGHT
private static final javax.swing.border.Border OUTER
private static final int HEIGHT
private javax.swing.text.JTextComponent component
private boolean updateFont
private int borderGap
private java.awt.Color currentLineForeground
private float digitAlignment
private int minimumDisplayDigits
private int lastDigits
private int lastHeight
private int lastLine
private java.util.HashMap<java.lang.String,java.awt.FontMetrics> fonts
public TextLineNumber(javax.swing.text.JTextComponent component)
component - the related text componentpublic TextLineNumber(javax.swing.text.JTextComponent component,
int minimumDisplayDigits)
component - the related text componentminimumDisplayDigits - the number of digits used to calculate the
minimum width of the componentpublic boolean getUpdateFont()
public void setUpdateFont(boolean updateFont)
updateFont - when true update the Font and repaint the line numbers,
otherwise just repaint the line numbers.public int getBorderGap()
public void setBorderGap(int borderGap)
borderGap - the gap in pixelspublic java.awt.Color getCurrentLineForeground()
public void setCurrentLineForeground(java.awt.Color currentLineForeground)
currentLineForeground - the Color used to render the current linepublic float getDigitAlignment()
public void setDigitAlignment(float digitAlignment)
currentLineForeground - the Color used to render the current linepublic int getMinimumDisplayDigits()
public void setMinimumDisplayDigits(int minimumDisplayDigits)
minimumDisplayDigits - the number digits used in the preferred width
calculationprivate void setPreferredWidth()
public void paintComponent(java.awt.Graphics g)
paintComponent in class javax.swing.JComponentprivate boolean isCurrentLine(int rowStartOffset)
protected java.lang.String getTextLineNumber(int rowStartOffset)
private int getOffsetX(int availableWidth,
int stringWidth)
private int getOffsetY(int rowStartOffset,
java.awt.FontMetrics fontMetrics)
throws javax.swing.text.BadLocationException
javax.swing.text.BadLocationExceptionpublic void caretUpdate(javax.swing.event.CaretEvent e)
caretUpdate in interface javax.swing.event.CaretListenerpublic void changedUpdate(javax.swing.event.DocumentEvent e)
changedUpdate in interface javax.swing.event.DocumentListenerpublic void insertUpdate(javax.swing.event.DocumentEvent e)
insertUpdate in interface javax.swing.event.DocumentListenerpublic void removeUpdate(javax.swing.event.DocumentEvent e)
removeUpdate in interface javax.swing.event.DocumentListenerprivate void documentChanged()
public void propertyChange(java.beans.PropertyChangeEvent evt)
propertyChange in interface java.beans.PropertyChangeListenerCopyright 2004-2015 Wandora Team