Last active
July 12, 2023 16:49
-
-
Save stnc/343cde583a1d5f64e0100dce1ed404db to your computer and use it in GitHub Desktop.
terminal datatabel application
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) | |
} | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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