func Display()

in pkg/display/graph/heatmap/heatmap.go [84:126]


func Display(displayable *d.Displayable) error {
	t, err := termbox.New(termbox.ColorMode(terminalapi.ColorMode256))
	if err != nil {
		return err
	}
	defer t.Close()

	title := fmt.Sprintf("[%s]-PRESS Q TO QUIT", displayable.Title)
	c, err := container.New(
		t,
		container.Border(linestyle.Light),
		container.BorderTitle(title),
		container.ID(rootID))
	if err != nil {
		return err
	}

	data := displayable.Data.(api.HeatMap)
	hp, err := NewHeatMapWidget(data)
	if err != nil {
		return err
	}

	gridOpts, err := layout(hp)
	if err != nil {
		return fmt.Errorf("builder.Build => %v", err)
	}

	if e := c.Update(rootID, gridOpts...); e != nil {
		return e
	}

	con, cancel := context.WithCancel(context.Background())
	quitter := func(keyboard *terminalapi.Keyboard) {
		if strings.EqualFold(keyboard.Key.String(), "q") {
			cancel()
		}
	}

	err = termdash.Run(con, t, c, termdash.KeyboardSubscriber(quitter))

	return err
}