func listenTracesKeyboard()

in pkg/display/graph/tree/list.go [122:165]


func listenTracesKeyboard(list *widgets.List, tree *widgets.Tree, data api.TraceBrief, ctx *cli.Context,
	detail, help *widgets.Paragraph, condition *api.TraceQueryCondition) {
	uiEvents := ui.PollEvents()
	listActive := true
	var err error
	for {
		e := <-uiEvents

		switch e.ID {
		case "q", Quit:
			return
		case "<C-b>", "p":
			pageNum := *condition.Paging.PageNum
			if pageNum != 1 {
				pageNum--
				condition.Paging.PageNum = &pageNum
				data, err = trace.Traces(ctx, condition)
				if err != nil {
					logger.Log.Fatalln(err)
				}
			}
			tree.SelectedRow = 0
		case "<C-f>", "n":
			pageNum := *condition.Paging.PageNum
			pageNum++
			condition.Paging.PageNum = &pageNum
			data, err = trace.Traces(ctx, condition)
			if err != nil {
				logger.Log.Fatalln(err)
			}
			tree.SelectedRow = 0
		case "<Right>":
			listActive = false
		case "<Left>":
			listActive = true
		default:
			if action := listActions(e.ID, list, tree, listActive); action != nil {
				action()
			}
		}

		draw(list, tree, detail, help, data, ctx, condition)
	}
}