Skip to content

Instantly share code, notes, and snippets.

@stnc
Last active July 12, 2023 16:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stnc/343cde583a1d5f64e0100dce1ed404db to your computer and use it in GitHub Desktop.
Save stnc/343cde583a1d5f64e0100dce1ed404db to your computer and use it in GitHub Desktop.
terminal datatabel application
package main
import (
"database/sql"
"fmt"
"github.com/gdamore/tcell/v2"
_ "github.com/go-sql-driver/mysql"
"github.com/rivo/tview"
"log"
"strconv"
"time"
)
type Testtable2 struct {
orderNumber int `json:"order_number"`
resPersonName string `json:"res_person_name"`
}
//https://github.com/rivo/tview/blob/master/demos/table/virtualtable/main.go
///bundan gelisitirilecek
func main() {
//s := gocron.NewScheduler(time.UTC)
//s.Every(3).Seconds().Do(func() {
// fmt.Println("Every 3 seconds")
// heartBeat()
//})
// you can start running the scheduler in two different ways:
// starts the scheduler asynchronously
//s.StartAsync()
// starts the scheduler and blocks current execution path
// s.StartBlocking()
heartBeat()
}
func heartBeat() {
app := tview.NewApplication()
table := tview.NewTable().
SetBorders(true)
var text string
cols, rows := 2, 6
for r := 0; r < rows; r++ {
for c := 0; c < cols; c++ {
color := tcell.ColorWhite
s2 := strconv.Itoa(r)
text = "data" + s2
//if c < 1 || r < 1 {
if r < 1 {
color = tcell.ColorYellow
text = "header"
}
table.SetCell(r, c,
tview.NewTableCell(text).
SetTextColor(color).
SetAlign(tview.AlignCenter))
}
}
if err := app.SetRoot(table, true).EnableMouse(false).Run(); err != nil {
panic(err)
}
time.Sleep(4 * time.Second)
table.Clear()
table.RemoveRow(4)
if err := app.SetRoot(table, true).EnableMouse(false).Run(); err != nil {
panic(err)
}
//
//table.Select(0, 0).SetFixed(1, 1).SetDoneFunc(func(key tcell.Key) {
// if key == tcell.KeyEscape {
// app.Stop()
// }
// if key == tcell.KeyEnter {
// table.SetSelectable(true, true)
// }
//}).SetSelectedFunc(func(row int, column int) {
// table.GetCell(row, column).SetTextColor(tcell.ColorRed)
// table.SetSelectable(false, false)
//})
}
func data() {
db, err := sql.Open("mysql", "root:selman123@tcp(localhost:3306)/node")
if err != nil {
panic(err.Error())
}
defer db.Close()
var count int
err2 := db.QueryRow("SELECT COUNT(*) FROM moe_dummy_restaurant").Scan(&count)
switch {
case err != nil:
log.Fatal(err2)
default:
fmt.Printf("Number of rows are %s\n", count)
results, err := db.Query("SELECT order_number,res_person_name FROM moe_dummy_restaurant")
if err != nil {
panic(err.Error())
}
for results.Next() {
var testtable2 Testtable2
err = results.Scan(&testtable2.orderNumber, &testtable2.resPersonName)
if err != nil {
panic(err.Error())
}
fmt.Println(testtable2.orderNumber)
fmt.Println(testtable2.resPersonName)
}
}
}
package main
import (
"github.com/gdamore/tcell/v2"
"github.com/rivo/tview"
)
type TableData struct {
tview.TableContentReadOnly
}
func (d *TableData) GetCell(row, column int) *tview.TableCell {
return tview.NewTableCell("selman")
}
func (d *TableData) GetRowCount() int {
return 10
}
func (d *TableData) GetColumnCount() int {
return 10
}
func selman() {
data := &TableData{}
data.InsertColumn(11)
data.InsertRow(11)
data.SetCell(11, 11,
tview.NewTableCell("lorem[word]").
SetTextColor(tcell.ColorYellow).
SetAlign(tview.AlignCenter))
}
func main() {
maker()
//selman()
}
func maker() {
data := &TableData{}
table := tview.NewTable().SetBorders(true).SetSelectable(true, true).SetContent(data)
table.SetBorders(true).SetSelectable(true, true).SetContent(data)
//table.InsertColumn(12)
//table.InsertRow(12)
//table.SetCell(12, 12,
// tview.NewTableCell("lorem[word]").
// SetTextColor(tcell.ColorYellow).
// SetAlign(tview.AlignCenter))
if err := tview.NewApplication().SetRoot(table, true).EnableMouse(true).Run(); err != nil {
panic(err)
}
}
package main
import (
"avia/goalexa"
"context"
"encoding/json"
"fmt"
"github.com/gdamore/tcell/v2"
"github.com/joho/godotenv"
"github.com/rivo/tview"
"net/http"
)
type TableData struct {
tview.TableContentReadOnly
}
func (d *TableData) GetCell(row, column int) *tview.TableCell {
return tview.NewTableCell("selman")
}
func (d *TableData) GetRowCount() int {
return 10
}
func (d *TableData) GetColumnCount() int {
return 10
}
func selman() {
data := &TableData{}
data.InsertColumn(11)
data.InsertRow(11)
data.SetCell(11, 11,
tview.NewTableCell("lorem[word]").
SetTextColor(tcell.ColorYellow).
SetAlign(tview.AlignCenter))
}
func main() {
maker()
//selman()
}
func maker() {
data := &TableData{}
table := tview.NewTable().SetBorders(true).SetSelectable(true, true).SetContent(data)
table.SetBorders(true).SetSelectable(true, true).SetContent(data)
//table.InsertColumn(12)
//table.InsertRow(12)
//table.SetCell(12, 12,
// tview.NewTableCell("lorem[word]").
// SetTextColor(tcell.ColorYellow).
// SetAlign(tview.AlignCenter))
if err := tview.NewApplication().SetRoot(table, true).EnableMouse(true).Run(); err != nil {
panic(err)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment