add feature that edit value

develop
skanehira 5 years ago
parent 304e432e33
commit f91a6e2074

@ -3,6 +3,7 @@ package gui
import (
"log"
"github.com/gdamore/tcell"
"github.com/rivo/tview"
)
@ -23,7 +24,7 @@ func New() *Gui {
func (g *Gui) Run(i interface{}) error {
g.Tree.UpdateView(g, i)
g.Tree.SetKeybindings()
g.Tree.SetKeybindings(g)
grid := tview.NewGrid().
AddItem(g.Tree, 0, 0, 1, 1, 0, 0, true)
@ -37,3 +38,15 @@ func (g *Gui) Run(i interface{}) error {
return nil
}
func (g *Gui) Input(text string, doneFunc func(text string)) {
input := tview.NewInputField().SetText(text)
input.SetLabel("field:").SetLabelWidth(6).SetDoneFunc(func(key tcell.Key) {
if key == tcell.KeyEnter {
doneFunc(input.GetText())
g.Pages.SendToBack("input")
}
})
g.Pages.AddPage("input", input, true, true).SendToFront("input").ShowPage("main")
}

@ -86,11 +86,11 @@ func (t *Tree) NewNodeWithLiteral(i interface{}) *tview.TreeNode {
return node.SetText(text)
}
func (t *Tree) SetKeybindings() {
func (t *Tree) SetKeybindings(g *Gui) {
t.SetSelectedFunc(func(node *tview.TreeNode) {
if len(node.GetChildren()) > 0 {
node.SetExpanded(!node.IsExpanded())
}
g.Input(node.GetText(), func(text string) {
node.SetText(text)
})
})
t.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey {

Loading…
Cancel
Save