@ParametersAreNonnullByDefault public class ExtendedCodeAreaPainter extends java.lang.Object implements org.exbin.bined.swing.CodeAreaPainter, ColorsProfileCapableCodeAreaPainter, LayoutProfileCapableCodeAreaPainter, ThemeProfileCapableCodeAreaPainter, CaretsProfileCapableCodeAreaPainter
| Modifier and Type | Field and Description |
|---|---|
protected org.exbin.bined.swing.CodeAreaCore |
codeArea |
protected java.util.Map<java.lang.Character,java.lang.Character> |
unprintableCharactersMapping |
| Constructor and Description |
|---|
ExtendedCodeAreaPainter(org.exbin.bined.swing.CodeAreaCore codeArea) |
| Modifier and Type | Method and Description |
|---|---|
void |
attach() |
java.util.Optional<org.exbin.bined.basic.CodeAreaScrollPosition> |
computeCenterOnScrollPosition(org.exbin.bined.CodeAreaCaretPosition caretPosition) |
org.exbin.bined.CodeAreaCaretPosition |
computeMovePosition(org.exbin.bined.CodeAreaCaretPosition position,
org.exbin.bined.basic.MovementDirection direction) |
org.exbin.bined.basic.PositionScrollVisibility |
computePositionScrollVisibility(org.exbin.bined.CodeAreaCaretPosition caretPosition) |
java.util.Optional<org.exbin.bined.basic.CodeAreaScrollPosition> |
computeRevealScrollPosition(org.exbin.bined.CodeAreaCaretPosition caretPosition) |
org.exbin.bined.basic.CodeAreaScrollPosition |
computeScrolling(org.exbin.bined.basic.CodeAreaScrollPosition startPosition,
org.exbin.bined.basic.ScrollingDirection direction) |
void |
detach() |
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.
|
protected void |
drawShiftedChars(java.awt.Graphics g,
char[] drawnChars,
int charOffset,
int length,
int positionX,
int positionY) |
void |
fontChanged(java.awt.Graphics g) |
int |
getBytesPerRow() |
ExtendedCodeAreaCaretsProfile |
getCaretsProfile() |
org.exbin.bined.swing.basic.color.CodeAreaColorsProfile |
getColorsProfile() |
java.awt.Rectangle |
getCursorPositionRect(long dataPosition,
int codeOffset,
org.exbin.bined.CodeAreaSection section)
Returns cursor rectangle.
|
protected int |
getCharactersPerRow() |
org.exbin.bined.extended.layout.ExtendedCodeAreaLayoutProfile |
getLayoutProfile() |
int |
getMouseCursorShape(int positionX,
int positionY) |
java.awt.Color |
getPositionBackgroundColor(long rowDataPosition,
int byteOnRow,
int halfCharOnRow,
org.exbin.bined.CodeAreaSection section,
boolean unprintable)
Returns background color for particular code.
|
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.
|
java.awt.Color |
getPositionTextColor(long rowDataPosition,
int byteOnRow,
int halfCharOnRow,
org.exbin.bined.CodeAreaSection section,
boolean unprintable)
Returns background color for particular code.
|
org.exbin.bined.basic.BasicCodeAreaZone |
getPositionZone(int positionX,
int positionY) |
int |
getRowHeight() |
ExtendedCodeAreaThemeProfile |
getThemeProfile() |
boolean |
isInitialized() |
org.exbin.bined.CodeAreaCaretPosition |
mousePositionToClosestCaretPosition(int positionX,
int positionY,
org.exbin.bined.CaretOverlapMode overflowMode) |
void |
paintBackground(java.awt.Graphics g)
Paints main area background.
|
void |
paintComponent(java.awt.Graphics g) |
void |
paintCursor(java.awt.Graphics g) |
void |
paintHeader(java.awt.Graphics g) |
void |
paintMainArea(java.awt.Graphics g) |
void |
paintOutsideArea(java.awt.Graphics g) |
void |
paintRowBackground(java.awt.Graphics g,
long rowDataPosition,
int rowPositionX,
int rowPositionY)
Paints row background.
|
void |
paintRowPosition(java.awt.Graphics g) |
void |
paintRows(java.awt.Graphics g) |
void |
paintRowText(java.awt.Graphics g,
long rowDataPosition,
int rowPositionX,
int rowPositionY)
Paints row text.
|
void |
rebuildColors() |
void |
recomputeCharPositions() |
void |
reset() |
void |
resetCaret() |
void |
resetColors() |
void |
resetFont() |
void |
resetLayout() |
void |
scrollPositionChanged() |
void |
scrollPositionModified() |
void |
setCaretsProfile(ExtendedCodeAreaCaretsProfile caretsProfile) |
void |
setColorsProfile(org.exbin.bined.swing.basic.color.CodeAreaColorsProfile colorsProfile) |
void |
setLayoutProfile(org.exbin.bined.extended.layout.ExtendedCodeAreaLayoutProfile layoutProfile) |
void |
setThemeProfile(ExtendedCodeAreaThemeProfile themeProfile) |
protected void |
updateCache() |
protected void |
updateRectToCursorPosition(java.awt.Rectangle rect,
long dataPosition,
int codeOffset,
org.exbin.bined.CodeAreaSection section) |
void |
updateScrollBars() |
@Nonnull protected final org.exbin.bined.swing.CodeAreaCore codeArea
@Nullable protected java.util.Map<java.lang.Character,java.lang.Character> unprintableCharactersMapping
public ExtendedCodeAreaPainter(org.exbin.bined.swing.CodeAreaCore codeArea)
public void attach()
attach in interface org.exbin.bined.swing.CodeAreaPainterpublic void detach()
detach in interface org.exbin.bined.swing.CodeAreaPainterpublic void reset()
reset in interface org.exbin.bined.swing.CodeAreaPainterpublic void resetColors()
resetColors in interface org.exbin.bined.swing.CodeAreaPainterpublic void resetFont()
resetFont in interface org.exbin.bined.swing.CodeAreaPainterpublic void resetLayout()
resetLayout in interface org.exbin.bined.swing.CodeAreaPainterpublic void resetCaret()
resetCaret in interface org.exbin.bined.swing.CodeAreaPainterpublic void rebuildColors()
rebuildColors in interface org.exbin.bined.swing.CodeAreaPainterpublic void recomputeCharPositions()
public void fontChanged(java.awt.Graphics g)
public boolean isInitialized()
isInitialized in interface org.exbin.bined.swing.CodeAreaPainterpublic void paintComponent(java.awt.Graphics g)
paintComponent in interface org.exbin.bined.swing.CodeAreaPainterprotected void updateCache()
public void paintOutsideArea(java.awt.Graphics g)
public void paintHeader(java.awt.Graphics g)
public void paintRowPosition(java.awt.Graphics g)
public void paintMainArea(java.awt.Graphics g)
paintMainArea in interface org.exbin.bined.swing.CodeAreaPainterpublic void paintBackground(java.awt.Graphics g)
g - graphicspublic void paintRows(java.awt.Graphics g)
public void paintRowBackground(java.awt.Graphics g,
long rowDataPosition,
int rowPositionX,
int rowPositionY)
g - graphicsrowDataPosition - row data positionrowPositionX - row position XrowPositionY - row position Y@Nullable
public java.awt.Color getPositionBackgroundColor(long rowDataPosition,
int byteOnRow,
int halfCharOnRow,
org.exbin.bined.CodeAreaSection section,
boolean unprintable)
rowDataPosition - row data positionbyteOnRow - byte on current rowhalfCharOnRow - character on current rowsection - current sectionunprintable - flag for unprintable characters@Nonnull public org.exbin.bined.basic.PositionScrollVisibility computePositionScrollVisibility(org.exbin.bined.CodeAreaCaretPosition caretPosition)
computePositionScrollVisibility in interface org.exbin.bined.swing.CodeAreaPainter@Nonnull public java.util.Optional<org.exbin.bined.basic.CodeAreaScrollPosition> computeRevealScrollPosition(org.exbin.bined.CodeAreaCaretPosition caretPosition)
computeRevealScrollPosition in interface org.exbin.bined.swing.CodeAreaPainter@Nonnull public java.util.Optional<org.exbin.bined.basic.CodeAreaScrollPosition> computeCenterOnScrollPosition(org.exbin.bined.CodeAreaCaretPosition caretPosition)
computeCenterOnScrollPosition in interface org.exbin.bined.swing.CodeAreaPainterpublic void paintRowText(java.awt.Graphics g,
long rowDataPosition,
int rowPositionX,
int rowPositionY)
g - graphicsrowDataPosition - row data positionrowPositionX - row position XrowPositionY - row position Y@Nullable
public java.awt.Color getPositionTextColor(long rowDataPosition,
int byteOnRow,
int halfCharOnRow,
org.exbin.bined.CodeAreaSection section,
boolean unprintable)
rowDataPosition - row data positionbyteOnRow - byte on current rowhalfCharOnRow - character on current rowsection - current sectionunprintable - flag for unprintable characterspublic void paintCursor(java.awt.Graphics g)
paintCursor in interface org.exbin.bined.swing.CodeAreaPainter@Nonnull
public org.exbin.bined.CodeAreaCaretPosition mousePositionToClosestCaretPosition(int positionX,
int positionY,
org.exbin.bined.CaretOverlapMode overflowMode)
mousePositionToClosestCaretPosition in interface org.exbin.bined.swing.CodeAreaPainter@Nonnull
public org.exbin.bined.CodeAreaCaretPosition computeMovePosition(org.exbin.bined.CodeAreaCaretPosition position,
org.exbin.bined.basic.MovementDirection direction)
computeMovePosition in interface org.exbin.bined.swing.CodeAreaPainter@Nonnull
public org.exbin.bined.basic.CodeAreaScrollPosition computeScrolling(org.exbin.bined.basic.CodeAreaScrollPosition startPosition,
org.exbin.bined.basic.ScrollingDirection direction)
computeScrolling in interface org.exbin.bined.swing.CodeAreaPainter@Nullable
public java.awt.Point getPositionPoint(long dataPosition,
int codeOffset,
org.exbin.bined.CodeAreaSection section)
dataPosition - data positioncodeOffset - code offsetsection - sectionpublic int getMouseCursorShape(int positionX,
int positionY)
getMouseCursorShape in interface org.exbin.bined.swing.CodeAreaPainter@Nonnull
public org.exbin.bined.basic.BasicCodeAreaZone getPositionZone(int positionX,
int positionY)
getPositionZone in interface org.exbin.bined.swing.CodeAreaPainter@Nonnull public org.exbin.bined.swing.basic.color.CodeAreaColorsProfile getColorsProfile()
getColorsProfile in interface ColorsProfileCapableCodeAreaPainterpublic void setColorsProfile(org.exbin.bined.swing.basic.color.CodeAreaColorsProfile colorsProfile)
setColorsProfile in interface ColorsProfileCapableCodeAreaPainter@Nonnull public org.exbin.bined.extended.layout.ExtendedCodeAreaLayoutProfile getLayoutProfile()
getLayoutProfile in interface LayoutProfileCapableCodeAreaPainterpublic void setLayoutProfile(org.exbin.bined.extended.layout.ExtendedCodeAreaLayoutProfile layoutProfile)
setLayoutProfile in interface LayoutProfileCapableCodeAreaPainter@Nonnull public ExtendedCodeAreaThemeProfile getThemeProfile()
getThemeProfile in interface ThemeProfileCapableCodeAreaPainterpublic void setThemeProfile(ExtendedCodeAreaThemeProfile themeProfile)
setThemeProfile in interface ThemeProfileCapableCodeAreaPainter@Nonnull public ExtendedCodeAreaCaretsProfile getCaretsProfile()
getCaretsProfile in interface CaretsProfileCapableCodeAreaPainterpublic void setCaretsProfile(ExtendedCodeAreaCaretsProfile caretsProfile)
setCaretsProfile in interface CaretsProfileCapableCodeAreaPainterprotected void drawCenteredChars(java.awt.Graphics g,
char[] drawnChars,
int charOffset,
int length,
int cellWidth,
int positionX,
int positionY)
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 startprotected void drawShiftedChars(java.awt.Graphics g,
char[] drawnChars,
int charOffset,
int length,
int positionX,
int positionY)
@Nonnull
public java.awt.Rectangle getCursorPositionRect(long dataPosition,
int codeOffset,
org.exbin.bined.CodeAreaSection section)
dataPosition - data positioncodeOffset - code offsetsection - sectionprotected void updateRectToCursorPosition(java.awt.Rectangle rect,
long dataPosition,
int codeOffset,
org.exbin.bined.CodeAreaSection section)
public void updateScrollBars()
updateScrollBars in interface org.exbin.bined.swing.CodeAreaPainterpublic void scrollPositionModified()
scrollPositionModified in interface org.exbin.bined.swing.CodeAreaPainterpublic void scrollPositionChanged()
scrollPositionChanged in interface org.exbin.bined.swing.CodeAreaPainterprotected int getCharactersPerRow()
public int getBytesPerRow()
public int getRowHeight()