controller: ToggleView

pull/10/head
Edouard Paris 5 years ago
parent 14be338b14
commit b9d92c48d0

@ -208,39 +208,12 @@ func (c *controller) OnEnter(g *gocui.Gui, v *gocui.View) error {
case views.CHANNELS:
index := c.views.Channels.Index()
c.models.Channels.SetCurrent(index)
err := view.Delete(g)
if err != nil {
return err
}
err = c.views.Channel.Set(g, 0, 6, maxX-1, maxY)
if err != nil {
return err
}
c.views.Main = c.views.Channel
_, err = g.SetCurrentView(c.views.Channel.Name())
if err != nil {
return err
}
return ToggleView(g, view, c.views.Channels)
case views.CHANNEL:
err := view.Delete(g)
if err != nil {
return err
}
err = c.views.Channels.Set(g, 0, 6, maxX-1, maxY)
if err != nil {
return err
}
c.views.Main = c.views.Channels
_, err = g.SetCurrentView(c.views.Channels.Name())
if err != nil {
return err
}
return ToggleView(g, view, c.views.Channels)
case views.MENU:
current := c.views.Menu.Current()
@ -273,44 +246,32 @@ func (c *controller) OnEnter(g *gocui.Gui, v *gocui.View) error {
}
}
case views.TRANSACTIONS:
err := view.Delete(g)
if err != nil {
return err
}
index := c.views.Transactions.Index()
c.models.Transactions.SetCurrent(index)
err = c.views.Transaction.Set(g, 0, 6, maxX-1, maxY)
if err != nil {
return err
}
c.views.Main = c.views.Transaction
_, err = g.SetCurrentView(c.views.Transaction.Name())
if err != nil {
return err
}
return ToggleView(g, view, c.views.Transaction)
case views.TRANSACTION:
err := view.Delete(g)
if err != nil {
return err
}
err = c.views.Transactions.Set(g, 0, 6, maxX-1, maxY)
if err != nil {
return err
}
c.views.Main = c.views.Transactions
return ToggleView(g, view, c.views.Transactions)
}
return nil
}
_, err = g.SetCurrentView(c.views.Transactions.Name())
if err != nil {
return err
}
func ToggleView(g *gocui.Gui, v1, v2 views.View) error {
maxX, maxY := g.Size()
err := v1.Delete(g)
if err != nil {
return err
}
return nil
err = v2.Set(g, 0, 6, maxX-1, maxY)
if err != nil {
return err
}
return nil
_, err = g.SetCurrentView(v2.Name())
return err
}
func newController(app *app.App) *controller {

@ -30,7 +30,7 @@ func (c Channel) Empty() bool {
return c.channels == nil
}
func (c *Channel) Wrap(v *gocui.View) view {
func (c *Channel) Wrap(v *gocui.View) View {
c.view = v
return c
}

@ -58,7 +58,7 @@ func (c Channels) Name() string {
return CHANNELS
}
func (c *Channels) Wrap(v *gocui.View) view {
func (c *Channels) Wrap(v *gocui.View) View {
c.view = v
return c
}

@ -21,7 +21,7 @@ func (h Help) Name() string {
return HELP
}
func (h *Help) Wrap(v *gocui.View) view {
func (h *Help) Wrap(v *gocui.View) View {
h.view = v
return h
}

@ -24,7 +24,7 @@ func (h Menu) Name() string {
return MENU
}
func (h *Menu) Wrap(v *gocui.View) view {
func (h *Menu) Wrap(v *gocui.View) View {
h.view = v
return h
}

@ -30,7 +30,7 @@ func (c Transaction) Empty() bool {
return c.transactions == nil
}
func (c *Transaction) Wrap(v *gocui.View) view {
func (c *Transaction) Wrap(v *gocui.View) View {
c.view = v
return c
}

@ -29,7 +29,6 @@ var DefaultTransactionsColumns = []string{
}
type Transactions struct {
current int
columns []transactionsColumn
columnsView *gocui.View
view *gocui.View
@ -55,7 +54,7 @@ func (c Transactions) Name() string {
return TRANSACTIONS
}
func (c *Transactions) Wrap(v *gocui.View) view {
func (c *Transactions) Wrap(v *gocui.View) View {
c.view = v
return c
}

@ -9,16 +9,16 @@ import (
"github.com/edouardparis/lntop/ui/models"
)
type view interface {
type View interface {
Set(*gocui.Gui, int, int, int, int) error
Delete(*gocui.Gui) error
Wrap(*gocui.View) view
Wrap(*gocui.View) View
Name() string
cursor.View
}
type Views struct {
Main view
Main View
Help *Help
Header *Header
@ -30,7 +30,7 @@ type Views struct {
Transaction *Transaction
}
func (v Views) Get(vi *gocui.View) view {
func (v Views) Get(vi *gocui.View) View {
if vi == nil {
return nil
}

Loading…
Cancel
Save