Package org.exbin.bined.swing.extended
Class ExtendedCodeAreaPainter
- java.lang.Object
-
- org.exbin.bined.swing.extended.ExtendedCodeAreaPainter
-
- All Implemented Interfaces:
org.exbin.bined.swing.CodeAreaPainter,CaretsProfileCapableCodeAreaPainter,ColorsProfileCapableCodeAreaPainter,LayoutProfileCapableCodeAreaPainter,ThemeProfileCapableCodeAreaPainter
- Direct Known Subclasses:
DiffHighlightCodeAreaPainter
@ParametersAreNonnullByDefault public class ExtendedCodeAreaPainter extends java.lang.Object implements org.exbin.bined.swing.CodeAreaPainter, ColorsProfileCapableCodeAreaPainter, LayoutProfileCapableCodeAreaPainter, ThemeProfileCapableCodeAreaPainter, CaretsProfileCapableCodeAreaPainter
Extended code area component default painter.
-
-
Field Summary
Fields Modifier and Type Field Description protected org.exbin.bined.swing.CodeAreaCorecodeAreaprotected java.util.Map<java.lang.Character,java.lang.Character>unprintableCharactersMapping
-
Constructor Summary
Constructors Constructor Description ExtendedCodeAreaPainter(org.exbin.bined.swing.CodeAreaCore codeArea)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidattach()java.util.Optional<org.exbin.bined.basic.CodeAreaScrollPosition>computeCenterOnScrollPosition(org.exbin.bined.CodeAreaCaretPosition caretPosition)org.exbin.bined.CodeAreaCaretPositioncomputeMovePosition(org.exbin.bined.CodeAreaCaretPosition position, org.exbin.bined.basic.MovementDirection direction)org.exbin.bined.basic.PositionScrollVisibilitycomputePositionScrollVisibility(org.exbin.bined.CodeAreaCaretPosition caretPosition)java.util.Optional<org.exbin.bined.basic.CodeAreaScrollPosition>computeRevealScrollPosition(org.exbin.bined.CodeAreaCaretPosition caretPosition)org.exbin.bined.basic.CodeAreaScrollPositioncomputeScrolling(org.exbin.bined.basic.CodeAreaScrollPosition startPosition, org.exbin.bined.basic.ScrollingDirection direction)voiddetach()protected voiddrawCenteredChars(java.awt.Graphics g, char[] drawnChars, int charOffset, int length, int cellWidth, int positionX, int positionY)Draws characters centering it to cells of the same width.protected voiddrawShiftedChars(java.awt.Graphics g, char[] drawnChars, int charOffset, int length, int positionX, int positionY)voidfontChanged(java.awt.Graphics g)intgetBytesPerRow()ExtendedCodeAreaCaretsProfilegetCaretsProfile()org.exbin.bined.swing.basic.color.CodeAreaColorsProfilegetColorsProfile()java.awt.RectanglegetCursorPositionRect(long dataPosition, int codeOffset, org.exbin.bined.CodeAreaSection section)Returns cursor rectangle.protected intgetCharactersPerRow()org.exbin.bined.extended.layout.ExtendedCodeAreaLayoutProfilegetLayoutProfile()intgetMouseCursorShape(int positionX, int positionY)java.awt.ColorgetPositionBackgroundColor(long rowDataPosition, int byteOnRow, int halfCharOnRow, org.exbin.bined.CodeAreaSection section, boolean unprintable)Returns background color for particular code.java.awt.PointgetPositionPoint(long dataPosition, int codeOffset, org.exbin.bined.CodeAreaSection section)Returns relative cursor position in code area or null if cursor is not visible.java.awt.ColorgetPositionTextColor(long rowDataPosition, int byteOnRow, int halfCharOnRow, org.exbin.bined.CodeAreaSection section, boolean unprintable)Returns background color for particular code.org.exbin.bined.basic.BasicCodeAreaZonegetPositionZone(int positionX, int positionY)intgetRowHeight()ExtendedCodeAreaThemeProfilegetThemeProfile()booleanisInitialized()org.exbin.bined.CodeAreaCaretPositionmousePositionToClosestCaretPosition(int positionX, int positionY, org.exbin.bined.CaretOverlapMode overflowMode)voidpaintBackground(java.awt.Graphics g)Paints main area background.voidpaintComponent(java.awt.Graphics g)voidpaintCursor(java.awt.Graphics g)voidpaintHeader(java.awt.Graphics g)voidpaintMainArea(java.awt.Graphics g)voidpaintOutsideArea(java.awt.Graphics g)voidpaintRowBackground(java.awt.Graphics g, long rowDataPosition, int rowPositionX, int rowPositionY)Paints row background.voidpaintRowPosition(java.awt.Graphics g)voidpaintRows(java.awt.Graphics g)voidpaintRowText(java.awt.Graphics g, long rowDataPosition, int rowPositionX, int rowPositionY)Paints row text.voidrebuildColors()voidrecomputeCharPositions()voidreset()voidresetCaret()voidresetColors()voidresetFont()voidresetLayout()voidscrollPositionChanged()voidscrollPositionModified()voidsetCaretsProfile(ExtendedCodeAreaCaretsProfile caretsProfile)voidsetColorsProfile(org.exbin.bined.swing.basic.color.CodeAreaColorsProfile colorsProfile)voidsetLayoutProfile(org.exbin.bined.extended.layout.ExtendedCodeAreaLayoutProfile layoutProfile)voidsetThemeProfile(ExtendedCodeAreaThemeProfile themeProfile)protected voidupdateCache()protected voidupdateRectToCursorPosition(java.awt.Rectangle rect, long dataPosition, int codeOffset, org.exbin.bined.CodeAreaSection section)voidupdateScrollBars()
-
-
-
Method Detail
-
attach
public void attach()
- Specified by:
attachin interfaceorg.exbin.bined.swing.CodeAreaPainter
-
detach
public void detach()
- Specified by:
detachin interfaceorg.exbin.bined.swing.CodeAreaPainter
-
reset
public void reset()
- Specified by:
resetin interfaceorg.exbin.bined.swing.CodeAreaPainter
-
resetColors
public void resetColors()
- Specified by:
resetColorsin interfaceorg.exbin.bined.swing.CodeAreaPainter
-
resetFont
public void resetFont()
- Specified by:
resetFontin interfaceorg.exbin.bined.swing.CodeAreaPainter
-
resetLayout
public void resetLayout()
- Specified by:
resetLayoutin interfaceorg.exbin.bined.swing.CodeAreaPainter
-
resetCaret
public void resetCaret()
- Specified by:
resetCaretin interfaceorg.exbin.bined.swing.CodeAreaPainter
-
rebuildColors
public void rebuildColors()
- Specified by:
rebuildColorsin interfaceorg.exbin.bined.swing.CodeAreaPainter
-
recomputeCharPositions
public void recomputeCharPositions()
-
fontChanged
public void fontChanged(java.awt.Graphics g)
-
isInitialized
public boolean isInitialized()
- Specified by:
isInitializedin interfaceorg.exbin.bined.swing.CodeAreaPainter
-
paintComponent
public void paintComponent(java.awt.Graphics g)
- Specified by:
paintComponentin interfaceorg.exbin.bined.swing.CodeAreaPainter
-
updateCache
protected void updateCache()
-
paintOutsideArea
public void paintOutsideArea(java.awt.Graphics g)
-
paintHeader
public void paintHeader(java.awt.Graphics g)
-
paintRowPosition
public void paintRowPosition(java.awt.Graphics g)
-
paintMainArea
public void paintMainArea(java.awt.Graphics g)
- Specified by:
paintMainAreain interfaceorg.exbin.bined.swing.CodeAreaPainter
-
paintBackground
public void paintBackground(java.awt.Graphics g)
Paints main area background.- Parameters:
g- graphics
-
paintRows
public void paintRows(java.awt.Graphics g)
-
paintRowBackground
public void paintRowBackground(java.awt.Graphics g, long rowDataPosition, int rowPositionX, int rowPositionY)Paints row background.- Parameters:
g- graphicsrowDataPosition- row data positionrowPositionX- row position XrowPositionY- row position Y
-
getPositionBackgroundColor
@Nullable public java.awt.Color getPositionBackgroundColor(long rowDataPosition, int byteOnRow, int halfCharOnRow, org.exbin.bined.CodeAreaSection section, boolean unprintable)Returns background color for particular code.- Parameters:
rowDataPosition- row data positionbyteOnRow- byte on current rowhalfCharOnRow- character on current rowsection- current sectionunprintable- flag for unprintable characters- Returns:
- color or null for default color
-
computePositionScrollVisibility
@Nonnull public org.exbin.bined.basic.PositionScrollVisibility computePositionScrollVisibility(org.exbin.bined.CodeAreaCaretPosition caretPosition)
- Specified by:
computePositionScrollVisibilityin interfaceorg.exbin.bined.swing.CodeAreaPainter
-
computeRevealScrollPosition
@Nonnull public java.util.Optional<org.exbin.bined.basic.CodeAreaScrollPosition> computeRevealScrollPosition(org.exbin.bined.CodeAreaCaretPosition caretPosition)
- Specified by:
computeRevealScrollPositionin interfaceorg.exbin.bined.swing.CodeAreaPainter
-
computeCenterOnScrollPosition
@Nonnull public java.util.Optional<org.exbin.bined.basic.CodeAreaScrollPosition> computeCenterOnScrollPosition(org.exbin.bined.CodeAreaCaretPosition caretPosition)
- Specified by:
computeCenterOnScrollPositionin interfaceorg.exbin.bined.swing.CodeAreaPainter
-
paintRowText
public void paintRowText(java.awt.Graphics g, long rowDataPosition, int rowPositionX, int rowPositionY)Paints row text.- Parameters:
g- graphicsrowDataPosition- row data positionrowPositionX- row position XrowPositionY- row position Y
-
getPositionTextColor
@Nullable public java.awt.Color getPositionTextColor(long rowDataPosition, int byteOnRow, int halfCharOnRow, org.exbin.bined.CodeAreaSection section, boolean unprintable)Returns background color for particular code.- Parameters:
rowDataPosition- row data positionbyteOnRow- byte on current rowhalfCharOnRow- character on current rowsection- current sectionunprintable- flag for unprintable characters- Returns:
- color or null for default color
-
paintCursor
public void paintCursor(java.awt.Graphics g)
- Specified by:
paintCursorin interfaceorg.exbin.bined.swing.CodeAreaPainter
-
mousePositionToClosestCaretPosition
@Nonnull public org.exbin.bined.CodeAreaCaretPosition mousePositionToClosestCaretPosition(int positionX, int positionY, org.exbin.bined.CaretOverlapMode overflowMode)- Specified by:
mousePositionToClosestCaretPositionin interfaceorg.exbin.bined.swing.CodeAreaPainter
-
computeMovePosition
@Nonnull public org.exbin.bined.CodeAreaCaretPosition computeMovePosition(org.exbin.bined.CodeAreaCaretPosition position, org.exbin.bined.basic.MovementDirection direction)- Specified by:
computeMovePositionin interfaceorg.exbin.bined.swing.CodeAreaPainter
-
computeScrolling
@Nonnull public org.exbin.bined.basic.CodeAreaScrollPosition computeScrolling(org.exbin.bined.basic.CodeAreaScrollPosition startPosition, org.exbin.bined.basic.ScrollingDirection direction)- Specified by:
computeScrollingin interfaceorg.exbin.bined.swing.CodeAreaPainter
-
getPositionPoint
@Nullable public java.awt.Point getPositionPoint(long dataPosition, int codeOffset, org.exbin.bined.CodeAreaSection section)Returns relative cursor position in code area or null if cursor is not visible.- Parameters:
dataPosition- data positioncodeOffset- code offsetsection- section- Returns:
- cursor position or null
-
getMouseCursorShape
public int getMouseCursorShape(int positionX, int positionY)- Specified by:
getMouseCursorShapein interfaceorg.exbin.bined.swing.CodeAreaPainter
-
getPositionZone
@Nonnull public org.exbin.bined.basic.BasicCodeAreaZone getPositionZone(int positionX, int positionY)- Specified by:
getPositionZonein interfaceorg.exbin.bined.swing.CodeAreaPainter
-
getColorsProfile
@Nonnull public org.exbin.bined.swing.basic.color.CodeAreaColorsProfile getColorsProfile()
- Specified by:
getColorsProfilein interfaceColorsProfileCapableCodeAreaPainter
-
setColorsProfile
public void setColorsProfile(org.exbin.bined.swing.basic.color.CodeAreaColorsProfile colorsProfile)
- Specified by:
setColorsProfilein interfaceColorsProfileCapableCodeAreaPainter
-
getLayoutProfile
@Nonnull public org.exbin.bined.extended.layout.ExtendedCodeAreaLayoutProfile getLayoutProfile()
- Specified by:
getLayoutProfilein interfaceLayoutProfileCapableCodeAreaPainter
-
setLayoutProfile
public void setLayoutProfile(org.exbin.bined.extended.layout.ExtendedCodeAreaLayoutProfile layoutProfile)
- Specified by:
setLayoutProfilein interfaceLayoutProfileCapableCodeAreaPainter
-
getThemeProfile
@Nonnull public ExtendedCodeAreaThemeProfile getThemeProfile()
- Specified by:
getThemeProfilein interfaceThemeProfileCapableCodeAreaPainter
-
setThemeProfile
public void setThemeProfile(ExtendedCodeAreaThemeProfile themeProfile)
- Specified by:
setThemeProfilein interfaceThemeProfileCapableCodeAreaPainter
-
getCaretsProfile
@Nonnull public ExtendedCodeAreaCaretsProfile getCaretsProfile()
- Specified by:
getCaretsProfilein interfaceCaretsProfileCapableCodeAreaPainter
-
setCaretsProfile
public void setCaretsProfile(ExtendedCodeAreaCaretsProfile caretsProfile)
- Specified by:
setCaretsProfilein interfaceCaretsProfileCapableCodeAreaPainter
-
drawCenteredChars
protected void drawCenteredChars(java.awt.Graphics g, char[] drawnChars, int charOffset, int length, int cellWidth, int positionX, int positionY)Draws characters centering it to cells of the same width.- Parameters:
g- graphicsdrawnChars- array of charscharOffset- index of target character in arraylength- number of characters to drawcellWidth- width of cell to center intopositionX- X position of drawing area startpositionY- Y position of drawing area start
-
drawShiftedChars
protected void drawShiftedChars(java.awt.Graphics g, char[] drawnChars, int charOffset, int length, int positionX, int positionY)
-
getCursorPositionRect
@Nonnull public java.awt.Rectangle getCursorPositionRect(long dataPosition, int codeOffset, org.exbin.bined.CodeAreaSection section)Returns cursor rectangle.- Parameters:
dataPosition- data positioncodeOffset- code offsetsection- section- Returns:
- cursor rectangle or empty rectangle
-
updateRectToCursorPosition
protected void updateRectToCursorPosition(java.awt.Rectangle rect, long dataPosition, int codeOffset, org.exbin.bined.CodeAreaSection section)
-
updateScrollBars
public void updateScrollBars()
- Specified by:
updateScrollBarsin interfaceorg.exbin.bined.swing.CodeAreaPainter
-
scrollPositionModified
public void scrollPositionModified()
- Specified by:
scrollPositionModifiedin interfaceorg.exbin.bined.swing.CodeAreaPainter
-
scrollPositionChanged
public void scrollPositionChanged()
- Specified by:
scrollPositionChangedin interfaceorg.exbin.bined.swing.CodeAreaPainter
-
getCharactersPerRow
protected int getCharactersPerRow()
-
getBytesPerRow
public int getBytesPerRow()
-
getRowHeight
public int getRowHeight()
-
-