From b0c5e32e3bdbb0fb61930e50ae68edfbbf8c15e8 Mon Sep 17 00:00:00 2001 From: Edouard Paris Date: Sat, 23 Mar 2019 14:37:17 +0100 Subject: [PATCH] view: summary --- ui/controller.go | 11 ++++++-- ui/views/summary.go | 66 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 ui/views/summary.go diff --git a/ui/controller.go b/ui/controller.go index a938562..2755967 100644 --- a/ui/controller.go +++ b/ui/controller.go @@ -11,17 +11,23 @@ import ( type controller struct { app *app.App header *views.Header + summary *views.Summary channels *views.Channels } func (c *controller) layout(g *gocui.Gui) error { maxX, maxY := g.Size() - err := c.header.Set(g, 0, 0, maxX, 10) + err := c.header.Set(g, 0, 0, maxX, 2) if err != nil { return err } - return c.channels.Set(g, 0, maxY/8, maxX-1, maxY-1) + err = c.summary.Set(g, 0, 2, maxX, 10) + if err != nil { + return err + } + + return c.channels.Set(g, 0, 10, maxX-1, maxY-1) } func cursorDown(g *gocui.Gui, v *gocui.View) error { @@ -109,6 +115,7 @@ func newController(app *app.App) *controller { return &controller{ app: app, header: views.NewHeader(), + summary: views.NewSummary(), channels: views.NewChannels(), } } diff --git a/ui/views/summary.go b/ui/views/summary.go new file mode 100644 index 0000000..4470711 --- /dev/null +++ b/ui/views/summary.go @@ -0,0 +1,66 @@ +package views + +import ( + "fmt" + + "github.com/edouardparis/lntop/ui/color" + "github.com/jroimartin/gocui" +) + +const ( + SUMMARY_LEFT = "summary_left" + SUMMARY_RIGHT = "summary_right" +) + +type Summary struct { + left *gocui.View + right *gocui.View + NumPendingChannels uint32 + NumActiveChannels uint32 + NumInactiveChannels uint32 + NumPeers uint32 + BlockHeight uint32 + Synced bool +} + +func (s *Summary) Set(g *gocui.Gui, x0, y0, x1, y1 int) error { + var err error + s.left, err = g.SetView(SUMMARY_LEFT, x0, y0, x1/2, y1) + if err != nil { + if err != gocui.ErrUnknownView { + return err + } + } + s.left.Frame = false + + s.right, err = g.SetView(SUMMARY_RIGHT, x1/2, y0, x1, y1) + if err != nil { + if err != gocui.ErrUnknownView { + return err + } + } + s.right.Frame = false + s.display() + return nil +} + +func (s *Summary) Update() { + +} + +func (s *Summary) display() { + s.left.Clear() + fmt.Fprintln(s.left, color.Green("[ Channels ]")) + fmt.Fprintln(s.left, fmt.Sprintf("%s %4d", color.Cyan("Pending: "), s.NumPendingChannels)) + fmt.Fprintln(s.left, fmt.Sprintf("%s %4d", color.Cyan("Active: "), s.NumActiveChannels)) + fmt.Fprintln(s.left, fmt.Sprintf("%s %4d", color.Cyan("Inactive:"), s.NumInactiveChannels)) + + s.right.Clear() + fmt.Fprintln(s.right, color.Green("[ Network ]")) + fmt.Fprintln(s.right, fmt.Sprintf("%s %4d", color.Cyan("Block Height: "), s.BlockHeight)) + fmt.Fprintln(s.right, fmt.Sprintf("%s %4d", color.Cyan("Synced: "), s.NumActiveChannels)) +} + +func NewSummary() *Summary { + return &Summary{} +}