mirror of https://github.com/rivo/tview.git
Rewrote Table to accommodate virtual tables.
This commit is contained in:
parent
29d673af0c
commit
2cef1c04ba
|
@ -0,0 +1 @@
|
|||
![Screenshot](screenshot.png)
|
|
@ -0,0 +1,44 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math"
|
||||
|
||||
"github.com/rivo/tview"
|
||||
)
|
||||
|
||||
type TableData struct {
|
||||
tview.TableContentReadOnly
|
||||
}
|
||||
|
||||
func (d *TableData) GetCell(row, column int) *tview.TableCell {
|
||||
letters := [...]byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'A' + byte(row%26)} // log(math.MaxInt64) / log(26) ~= 14
|
||||
start := len(letters) - 1
|
||||
row /= 26
|
||||
for row > 0 {
|
||||
start--
|
||||
row--
|
||||
letters[start] = 'A' + byte(row%26)
|
||||
row /= 26
|
||||
}
|
||||
return tview.NewTableCell(fmt.Sprintf("[red]%s[green]%d", letters[start:], column))
|
||||
}
|
||||
|
||||
func (d *TableData) GetRowCount() int {
|
||||
return math.MaxInt64
|
||||
}
|
||||
|
||||
func (d *TableData) GetColumnCount() int {
|
||||
return math.MaxInt64
|
||||
}
|
||||
|
||||
func main() {
|
||||
data := &TableData{}
|
||||
table := tview.NewTable().
|
||||
SetBorders(false).
|
||||
SetSelectable(true, true).
|
||||
SetContent(data)
|
||||
if err := tview.NewApplication().SetRoot(table, true).EnableMouse(true).Run(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 64 KiB |
Loading…
Reference in New Issue