1 package com
.googlecode
.lanterna
.gui2
.table
;
3 import com
.googlecode
.lanterna
.TerminalSize
;
4 import com
.googlecode
.lanterna
.gui2
.TextGUIGraphics
;
7 * The main interface to implement when you need to customize the way table cells are drawn
9 * @param <V> Type of data in the table cells
12 public interface TableCellRenderer
<V
> {
14 * Called by the table when it wants to know how big a particular table cell should be
15 * @param table Table containing the cell
16 * @param cell Data stored in the cell
17 * @param columnIndex Column index of the cell
18 * @param rowIndex Row index of the cell
19 * @return Size this renderer would like the cell to have
21 TerminalSize
getPreferredSize(Table
<V
> table
, V cell
, int columnIndex
, int rowIndex
);
24 * Called by the table when it's time to draw a cell, you can see how much size is available by checking the size of
25 * the {@code textGUIGraphics}. The top-left position of the graphics object is the top-left position of this cell.
26 * @param table Table containing the cell
27 * @param cell Data stored in the cell
28 * @param columnIndex Column index of the cell
29 * @param rowIndex Row index of the cell
30 * @param textGUIGraphics Graphics object to draw with
32 void drawCell(Table
<V
> table
, V cell
, int columnIndex
, int rowIndex
, TextGUIGraphics textGUIGraphics
);