2 * Jexer - Java Text User Interface
4 * The MIT License (MIT)
6 * Copyright (C) 2019 David "Niki" ROULET
8 * Permission is hereby granted, free of charge, to any person obtaining a
9 * copy of this software and associated documentation files (the "Software"),
10 * to deal in the Software without restriction, including without limitation
11 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
12 * and/or sell copies of the Software, and to permit persons to whom the
13 * Software is furnished to do so, subject to the following conditions:
15 * The above copyright notice and this permission notice shall be included in
16 * all copies or substantial portions of the Software.
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
24 * DEALINGS IN THE SOFTWARE.
26 * @author David ROULET [niki@nikiroo.be]
29 package be
.nikiroo
.jexer
;
31 import jexer
.bits
.CellAttributes
;
34 * A simple {@link TTableCellRenderer} that display the values within a
37 * It supports a few different modes, see
38 * {@link TTableOldSimpleTextCellRenderer.CellRendererMode}.
42 public class TTableCellRendererText
extends TTableCellRenderer
{
43 private boolean rightAlign
;
46 * Create a new renderer for normal text mode.
48 public TTableCellRendererText() {
49 this(CellRendererMode
.NORMAL
);
53 * Create a new renderer of the given mode.
58 public TTableCellRendererText(CellRendererMode mode
) {
63 * Create a new renderer of the given mode.
66 * the renderer mode, cannot be NULL
68 public TTableCellRendererText(CellRendererMode mode
,
72 this.rightAlign
= rightAlign
;
76 public void renderTableCell(TTable table
, Object value
, int rowIndex
,
77 int colIndex
, int y
) {
79 int xOffset
= getXOffset(table
, colIndex
);
80 TTableColumn tcol
= table
.getColumns().get(colIndex
);
81 String data
= asText(value
, tcol
.getWidth(), rightAlign
);
83 if (!data
.isEmpty()) {
84 boolean isSelected
= table
.getSelectedRow() == rowIndex
;
85 boolean hasFocus
= table
.isAbsoluteActive();
86 CellAttributes color
= getCellAttributes(table
.getWindow()
87 .getApplication().getTheme(), isSelected
, hasFocus
);
88 table
.getScreen().putStringXY(xOffset
, y
, data
, color
);