func editValue(g *gocui.Gui, v *gocui.View) error { var l string var err error _, cy := v.Cursor() global.placeholder, _ = myViews.placeholders.Line(cy) if l, err = myViews.values.Line(cy); err != nil { l = "" } maxX, maxY := g.Size() if v, err := g.SetView("dialog", maxX/2-30, maxY/2, maxX/2+30, maxY/2+2); err != nil { if err != gocui.ErrUnknownView { return err } lx := len(l) fmt.Fprintln(v, l[:lx]) if l == " " { lx = 0 } v.SetCursor(lx, 0) if err := g.SetCurrentView("dialog"); err != nil { return err } v.Editable = true myViews.dialog = v } return nil }
func nextView(g *gocui.Gui, v *gocui.View) error { if v.Name() == "apps" { return g.SetCurrentView("placeholders") } if v.Name() == "placeholders" { return g.SetCurrentView("apps") } return g.SetCurrentView("apps") }
func loadPlaceholders(g *gocui.Gui, v *gocui.View) error { sc := getScreenConf(g) _, y := myViews.apps.Cursor() if err := g.DeleteView("placeholders"); err != nil { return err } if err := g.DeleteView("values"); err != nil { return err } vp, _ := layoutPlaceHolders(g, sc) vv, _ := layoutValues(g, sc) vp.SetCursor(0, 0) vp.Clear() vv.Clear() global.appName, _ = v.Line(y) pls, _ := api.GetPlaceholders(global.appName) vls, _ := api.GetValues(global.appName, []string{""}) global.vls = vls global.pls = pls for _, pl := range pls.Placeholders { value := pl.PropertyValue for _, vl := range vls.Values { if vl.Name == pl.PlaceHolder { value = vl.Value break } } if len(value) == 0 { value = " " } fmt.Fprintln(vp, pl.PropertyName) fmt.Fprintln(vv, value) } if err := g.SetCurrentView("placeholders"); err != nil { return err } return nil }
func moveCursor(v *gocui.View, direction int) error { if v != nil { ox, oy := v.Origin() cx, cy := v.Cursor() err := v.SetCursor(cx, cy+direction) if v.Name() == "placeholders" { myViews.values.SetCursor(cx, cy+direction) } if err != nil && (direction == 1 || (direction == -1 && oy > 0)) { if v.Name() == "placeholders" { myViews.values.SetOrigin(ox, oy+direction) } if err := v.SetOrigin(ox, oy+direction); err != nil { return err } } } return nil }