1 package be
.nikiroo
.jvcard
.tui
.windows
;
6 import jexer
.TApplication
;
8 import jexer
.event
.TResizeEvent
;
9 import be
.nikiroo
.jvcard
.tui
.panes
.MainContent
;
11 public abstract class TuiBrowserWindow
extends TuiBasicWindow
{
13 private boolean showHeader
;
15 public TuiBrowserWindow(TuiBasicWindow parent
, String title
,
16 boolean showHeaders
) {
21 public TuiBrowserWindow(TApplication app
, int width
, int height
,
22 String title
, boolean showHeaders
) {
23 super(app
, title
, width
, height
);
27 private void init(boolean showHeaders
) {
28 this.showHeader
= showHeaders
;
30 table
= new TTable(this, 0, 0, getWidth() - 2, getHeight() - 2,
34 onAction(table
.getSelectedRow(),
35 table
.getSelectedColumn());
41 * Change the currently displayed data.
44 * the table headers (mandatory)
48 public void setData(List
<String
> headers
, List
<List
<String
>> rows
) {
49 int prevRow
= table
.getSelectedRow();
50 int prevColumn
= table
.getSelectedColumn();
53 table
.setHeaders(headers
, showHeader
);
54 for (List
<String
> row
: rows
) {
60 table
.setSelectedRow(Math
.min(prevRow
, table
.getNumberOfRows() - 1));
61 table
.setSelectedColumn(Math
.min(prevColumn
,
62 table
.getNumberOfColumns() - 1));
66 * Return the number of items in this {@link MainContent}, or -1 if this
67 * {@link MainContent} is not countable.
69 * @return -1 or the number of present items
72 return table
.getNumberOfRows();
76 * An item has been selected.
79 * the currently selected row
80 * @param selectedColumn
81 * the currently selected column
83 @SuppressWarnings("unused")
84 public void onAction(int selectedRow
, int selectedColumn
) {
88 public void onResize(TResizeEvent resize
) {
89 super.onResize(resize
);
90 // Will be NULL at creation time in super()
92 table
.setWidth(getWidth() - 2);
93 table
.setHeight(getHeight() - 2);