Package kiyut.sketsa.xmleditor
Class LineNumber
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- kiyut.sketsa.xmleditor.LineNumber
-
- All Implemented Interfaces:
ImageObserver,MenuContainer,Serializable,Accessible
public class LineNumber extends JPanel
This class will display line numbers for a relatedJTextComponent. TheJTextComponentmust use the same line height for each line. ThisLineNumbersupports 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 aJScrollPane.- 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 Modifier and Type Field Description protected intalignmentprotected floatalignmentXprotected intborderGapprotected ColorcurrentLineForegroundprotected static StringEMPTY_STRINGJust an Empty Stringprotected intlastDigitsprotected intlastHeightprotected intlastLineprotected intminimumDisplayDigitsprotected static BorderOUTERprotected static intPREFS_HEIGHTprotected JTextComponenttextComponentJTextComponentwhich thisLineNumbercomponent is in sync with-
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, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
-
Constructor Summary
Constructors Constructor Description LineNumber(JTextComponent component)Create aLineNumbercomponent for aJTextComponent.LineNumber(JTextComponent component, int minimumDisplayDigits)Create aLineNumbercomponent for aJTextComponent.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidcaretUpdate(CaretEvent evt)protected voiddocumentChanged(DocumentEvent evt)intgetAlignment()Gets the alignmentintgetBorderGap()Gets the border gapColorgetCurrentLineForeground()Gets the current line rendering ColorintgetMinimumDisplayDigits()Gets the minimum display digitsprotected intgetOffsetX(int availableWidth, int stringWidth)protected StringgetTextLineNumber(Point viewPoint, int preferredHeight)protected booleanisCurrentLine(Point viewPoint)voidpaintComponent(Graphics g)voidsetAlignment(int alignment)Specify the horizontal alignment of the digits within the component.voidsetBorderGap(int borderGap)The border gap is used in calculating the left and right insets of the border.voidsetCurrentLineForeground(Color currentLineForeground)The Color used to render the current line digits.voidsetMinimumDisplayDigits(int minimumDisplayDigits)Specify the minimum number of digits used to calculate the preferred width of the component.protected voidsetPreferredWidth()Calculate the width needed to display the maximum line number-
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 Detail
-
OUTER
protected static final Border OUTER
-
PREFS_HEIGHT
protected static final int PREFS_HEIGHT
- See Also:
- Constant Field Values
-
EMPTY_STRING
protected static final String EMPTY_STRING
Just an Empty String- See Also:
- Constant Field Values
-
textComponent
protected JTextComponent textComponent
JTextComponentwhich thisLineNumbercomponent is in sync with
-
borderGap
protected int borderGap
-
currentLineForeground
protected Color currentLineForeground
-
alignment
protected int alignment
-
alignmentX
protected float alignmentX
-
minimumDisplayDigits
protected int minimumDisplayDigits
-
lastDigits
protected int lastDigits
-
lastHeight
protected int lastHeight
-
lastLine
protected int lastLine
-
-
Constructor Detail
-
LineNumber
public LineNumber(JTextComponent component)
Create aLineNumbercomponent for aJTextComponent. This minimum display width will be based on 3 digits.- Parameters:
component- the related text component
-
LineNumber
public LineNumber(JTextComponent component, int minimumDisplayDigits)
Create aLineNumbercomponent for aJTextComponent.- Parameters:
component- the related text componentminimumDisplayDigits- the number of digits used to calculate the minimum width of the component
-
-
Method Detail
-
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
public Color getCurrentLineForeground()
Gets the current line rendering Color- Returns:
- the Color used to render the current line number
-
setCurrentLineForeground
public void setCurrentLineForeground(Color currentLineForeground)
The Color used to render the current line digits. Default is Color.RED.- Parameters:
currentLineForeground- the Color used to render the current line
-
getAlignment
public int getAlignment()
Gets the alignment- Returns:
- the alignment of the painted line number
-
setAlignment
public void setAlignment(int alignment)
Specify the horizontal alignment of the digits within the component. Common values would be:- Parameters:
alignment- One of the constants defined inSwingConstants
-
getMinimumDisplayDigits
public int getMinimumDisplayDigits()
Gets the minimum display digits- Returns:
- the minimum display digits
-
setMinimumDisplayDigits
public void setMinimumDisplayDigits(int minimumDisplayDigits)
Specify the minimum 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
-
setPreferredWidth
protected void setPreferredWidth()
Calculate the width needed to display the maximum line number
-
paintComponent
public void paintComponent(Graphics g)
- Overrides:
paintComponentin classJComponent
-
isCurrentLine
protected boolean isCurrentLine(Point viewPoint)
-
getOffsetX
protected int getOffsetX(int availableWidth, int stringWidth)
-
caretUpdate
protected void caretUpdate(CaretEvent evt)
-
documentChanged
protected void documentChanged(DocumentEvent evt)
-
-