From 4867422474c6ac7b41bd2d8d1222bbfe2bb435ab Mon Sep 17 00:00:00 2001 From: Edouard Paris Date: Fri, 22 Mar 2019 10:14:58 +0100 Subject: [PATCH] view channel: gauge --- ui/color/color.go | 1 + ui/views/channels.go | 20 +++++++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/ui/color/color.go b/ui/color/color.go index 413ad05..da965e5 100644 --- a/ui/color/color.go +++ b/ui/color/color.go @@ -10,4 +10,5 @@ var ( Red = color.New(color.FgRed).SprintFunc() Cyan = color.New(color.FgCyan).SprintFunc() CyanBg = color.New(color.BgCyan, color.FgBlack).SprintFunc() + WhiteBg = color.New(color.BgWhite, color.FgBlack).SprintFunc() ) diff --git a/ui/views/channels.go b/ui/views/channels.go index 5dc9c4b..30feb22 100644 --- a/ui/views/channels.go +++ b/ui/views/channels.go @@ -53,9 +53,9 @@ func (c *Channels) Set(g *gocui.Gui, x0, y0, x1, y1 int) error { } func displayChannelsHeader(v *gocui.View) { - fmt.Fprintln(v, fmt.Sprintf("%-9s %-19s %12s %12s", + fmt.Fprintln(v, fmt.Sprintf("%-9s %-26s %12s %12s", "Status", - "CID", + "Gauge", "Local", "Capacity", )) @@ -70,7 +70,8 @@ func (c *Channels) display() { for _, item := range c.items { line := fmt.Sprintf("%s %s %s %12d", active(item), - chartID(item), + gauge(item), + //chartID(item), color.Cyan(fmt.Sprintf("%12d", item.LocalBalance)), item.Capacity, ) @@ -96,6 +97,19 @@ func chartID(c *models.Channel) string { return buffer.String() } +func gauge(c *models.Channel) string { + index := int(c.LocalBalance * int64(20) / c.Capacity) + var buffer bytes.Buffer + for i := 0; i < 20; i++ { + if i < index { + buffer.WriteString(color.Cyan("|")) + continue + } + buffer.WriteString(" ") + } + return fmt.Sprintf("[%s %2d%%]", buffer.String(), c.LocalBalance*100/c.Capacity) +} + func NewChannels() *Channels { return &Channels{} }