Skip to content

Commit

Permalink
refactor(gui): refactor the keybindings deginitions
Browse files Browse the repository at this point in the history
  • Loading branch information
danvergara committed May 2, 2021
1 parent 5e4ac56 commit 75fd4a1
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 10 deletions.
6 changes: 5 additions & 1 deletion pkg/gui/gui.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,13 @@ func New(g *gocui.Gui, c *client.Client) *Gui {
func (gui *Gui) Run() error {
defer gui.g.Close()

gui.g.Highlight = true
gui.g.Cursor = true
gui.g.SelFgColor = gocui.ColorGreen

gui.g.SetManagerFunc(gui.layout)

if err := gui.g.SetKeybinding("", gocui.KeyCtrlC, gocui.ModNone, Quit); err != nil {
if err := gui.keybindings(); err != nil {
return err
}

Expand Down
25 changes: 25 additions & 0 deletions pkg/gui/keybindings.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package gui

import (
"github.com/jroimartin/gocui"
)

func (gui *Gui) keybindings() error {
if err := gui.g.SetKeybinding("query", gocui.KeyCtrlH, gocui.ModNone, setQueryView); err != nil {
return err
}

if err := gui.g.SetKeybinding("query", gocui.KeyEnter, gocui.ModNone, gui.runQuery()); err != nil {
return err
}

if err := gui.g.SetKeybinding("tables", gocui.KeyCtrlL, gocui.ModNone, setTablesView); err != nil {
return err
}

if err := gui.g.SetKeybinding("", gocui.KeyCtrlC, gocui.ModNone, quit); err != nil {
return err
}

return nil
}
40 changes: 31 additions & 9 deletions pkg/gui/layout.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package gui

import (
"github.com/jroimartin/gocui"
"github.com/olekukonko/tablewriter"
)

// Layout is called for every screen re-render e.g. when the screen is resized.
Expand Down Expand Up @@ -41,19 +40,42 @@ func (gui *Gui) layout(g *gocui.Gui) error {
return err
}

// init table
table := tablewriter.NewWriter(v)
table.SetCenterSeparator("|")
table.SetBorders(tablewriter.Border{Left: true, Top: false, Right: true, Bottom: false})
table.Render()

v.Title = "Rows"
}

return nil
}

// Quit is called to end the gui app.
func Quit(g *gocui.Gui, v *gocui.View) error {
func setQueryView(g *gocui.Gui, v *gocui.View) error {
if v == nil || v.Name() == "tables" {
_, err := g.SetCurrentView("query")
return err
}

g.Highlight = true
g.Cursor = true
g.SelFgColor = gocui.ColorGreen

_, err := g.SetCurrentView("tables")
return err
}

func setTablesView(g *gocui.Gui, v *gocui.View) error {
if v == nil || v.Name() == "query" {
_, err := g.SetCurrentView("tables")

g.Highlight = true
g.Cursor = true
g.SelFgColor = gocui.ColorGreen

return err
}

_, err := g.SetCurrentView("query")
return err
}

// quit is called to end the gui app.
func quit(g *gocui.Gui, v *gocui.View) error {
return gocui.ErrQuit
}

0 comments on commit 75fd4a1

Please sign in to comment.