예제 #1
0
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
}
예제 #2
0
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")
}
예제 #3
0
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
}
예제 #4
0
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
}