diff options
Diffstat (limited to 'examples/go-dashboard/src/ui/ui/ui.go')
-rw-r--r-- | examples/go-dashboard/src/ui/ui/ui.go | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/examples/go-dashboard/src/ui/ui/ui.go b/examples/go-dashboard/src/ui/ui/ui.go deleted file mode 100644 index 8a42803dd..000000000 --- a/examples/go-dashboard/src/ui/ui/ui.go +++ /dev/null @@ -1,104 +0,0 @@ -package ui - -import ( - "context" - "time" - - "github.com/mum4k/termdash" - "github.com/mum4k/termdash/container" - "github.com/mum4k/termdash/keyboard" - "github.com/mum4k/termdash/linestyle" - "github.com/mum4k/termdash/terminal/termbox" - "github.com/mum4k/termdash/terminal/terminalapi" - "github.com/mum4k/termdash/widgets/text" -) - -const rootID = "root" -const redrawInterval = 250 * time.Millisecond - -type Tui struct { - Term terminalapi.Terminal - Context context.Context - Cancel context.CancelFunc - Container *container.Container - MainTicker *time.Ticker -} - -type Widgets struct { - Menu *text.Text - RawJson *text.Text -} - -func newWidgets(ctx context.Context) (*Widgets, error) { - menu, err := text.New() - if err != nil { - panic(err) - } - - rawJson, err := text.New(text.RollContent(), text.WrapAtWords()) - if err != nil { - panic(err) - } - - return &Widgets{ - Menu: menu, - RawJson: rawJson, - }, nil -} - -func Init() (*Tui, *Widgets) { - var err error - - ui := Tui{} - - ui.Term, err = termbox.New(termbox.ColorMode(terminalapi.ColorMode256)) - if err != nil { - panic(err) - } - - ui.Context, ui.Cancel = context.WithCancel(context.Background()) - - wdgts, err := newWidgets(ui.Context) - if err != nil { - panic(err) - } - - ui.Container, err = container.New(ui.Term, - container.Border(linestyle.None), - container.BorderTitle("[ESC to Quit]"), - container.SplitHorizontal( - container.Top( - container.Border(linestyle.Light), - container.BorderTitle("Go nDPId Dashboard"), - container.PlaceWidget(wdgts.Menu), - ), - container.Bottom( - container.Border(linestyle.Light), - container.BorderTitle("Raw JSON"), - container.PlaceWidget(wdgts.RawJson), - ), - container.SplitFixed(3), - ), - ) - if err != nil { - panic(err) - } - - ui.MainTicker = time.NewTicker(1 * time.Second) - - return &ui, wdgts -} - -func Run(ui *Tui) { - defer ui.Term.Close() - - quitter := func(k *terminalapi.Keyboard) { - if k.Key == keyboard.KeyEsc || k.Key == keyboard.KeyCtrlC { - ui.Cancel() - } - } - - if err := termdash.Run(ui.Context, ui.Term, ui.Container, termdash.KeyboardSubscriber(quitter), termdash.RedrawInterval(redrawInterval)); err != nil { - panic(err) - } -} |