ft ui channels view

pull/1/head
Edouard Paris 5 years ago
parent 9d929c0c24
commit 02ca67595c

@ -10,7 +10,6 @@ import (
"github.com/edouardparis/lntop/config"
"github.com/edouardparis/lntop/logging"
"github.com/edouardparis/lntop/network"
"github.com/edouardparis/lntop/network/backend"
"github.com/edouardparis/lntop/ui"
)
@ -48,21 +47,23 @@ func New() *cli.App {
}
func run(c *cli.Context) error {
a, err := app.Load()
network, err := getNetworkFromConfig(c)
if err != nil {
return err
}
a := &app.App{Network: network}
return ui.New(a).Run()
}
func getNetworkFromConfig(c *cli.Context) (backend.Backend, error) {
func getNetworkFromConfig(c *cli.Context) (*network.Network, error) {
cfg, err := config.Load(c.String("config"))
if err != nil {
return nil, err
}
logger := logging.New(config.Logger{Type: "development"})
logger := logging.New(config.Logger{Type: "nope"})
return network.New(&cfg.Network, logger)
}

@ -1,15 +1,15 @@
package ui
import (
"fmt"
"github.com/jroimartin/gocui"
"github.com/edouardparis/lntop/app"
"github.com/edouardparis/lntop/ui/views"
)
type Ui struct {
app *app.App
gui *gocui.Gui
channels *views.Channels
}
func (u *Ui) Run() error {
@ -19,27 +19,26 @@ func (u *Ui) Run() error {
}
defer g.Close()
g.SetManagerFunc(layout)
u.gui = g
g.SetManagerFunc(u.layout)
if err := g.SetKeybinding("", gocui.KeyCtrlC, gocui.ModNone, quit); err != nil {
err = g.SetKeybinding("", gocui.KeyCtrlC, gocui.ModNone, quit)
if err != nil {
return err
}
if err := g.MainLoop(); err != nil && err != gocui.ErrQuit {
err = g.MainLoop()
if err != nil && err != gocui.ErrQuit {
return err
}
return err
}
func layout(g *gocui.Gui) error {
func (u *Ui) layout(g *gocui.Gui) error {
maxX, maxY := g.Size()
if v, err := g.SetView("hello", maxX/2-7, maxY/2, maxX/2+7, maxY/2+2); err != nil {
if err != gocui.ErrUnknownView {
return err
}
fmt.Fprintln(v, "Hello world!")
}
return nil
return u.channels.Set(g, 0, maxY/2, maxX-1, maxY/2+2)
}
func quit(g *gocui.Gui, v *gocui.View) error {
@ -47,5 +46,7 @@ func quit(g *gocui.Gui, v *gocui.View) error {
}
func New(app *app.App) *Ui {
return &Ui{app: app}
return &Ui{
channels: views.NewChannels(app.Network),
}
}

@ -1,5 +1,57 @@
package views
import (
"context"
"fmt"
"github.com/jroimartin/gocui"
"github.com/edouardparis/lntop/network"
"github.com/edouardparis/lntop/network/models"
)
const CHANNELS = "channels"
type Channels struct {
*gocui.View
items []*models.Channel
network *network.Network
}
func (c *Channels) Set(g *gocui.Gui, x0, y0, x1, y1 int) error {
var err error
c.View, err = g.SetView(CHANNELS, x0, y0, x1, y1)
if err != nil {
if err != gocui.ErrUnknownView {
return err
}
}
c.View.Frame = false
err = c.Update(context.Background())
if err != nil {
return err
}
c.Display()
return nil
}
func (c *Channels) Update(ctx context.Context) error {
channels, err := c.network.ListChannels(ctx)
if err != nil {
return err
}
c.items = channels
return nil
}
func (c *Channels) Display() {
for i := range c.items {
fmt.Fprintln(c.View, fmt.Sprintf("%d", c.items[i].ID))
}
}
func NewChannels(network *network.Network) *Channels {
return &Channels{network: network}
}

Loading…
Cancel
Save