57 lines
1.4 KiB
Go
57 lines
1.4 KiB
Go
package fields
|
||
|
||
import (
|
||
"fmt"
|
||
tea "github.com/charmbracelet/bubbletea"
|
||
)
|
||
|
||
// ComputeModel структура описывающая модель вывода вычисляемых значений
|
||
type ComputeModel struct {
|
||
label string //Имя поля
|
||
description string //Описание поля
|
||
value string //Значение поля
|
||
}
|
||
|
||
// NewComputeModel создаем новую модель вывода вычисляемых значений
|
||
func NewComputeModel(label, value, description string) *ComputeModel {
|
||
return &ComputeModel{
|
||
label: label,
|
||
description: description,
|
||
value: value,
|
||
}
|
||
}
|
||
|
||
func (m *ComputeModel) Init() tea.Cmd {
|
||
return nil
|
||
}
|
||
|
||
// Update отслеживает действия с полем. Так как поле нужно только для вывода, никаких действий не выполняем.
|
||
func (m *ComputeModel) Update(msg tea.Msg) (FieldModel, tea.Cmd) {
|
||
return m, nil
|
||
}
|
||
|
||
func (m *ComputeModel) View() string {
|
||
res := fmt.Sprintf("%s: %s", m.label, m.value)
|
||
if m.description != "" {
|
||
res += fmt.Sprintf("\n%s", m.description)
|
||
}
|
||
return res
|
||
}
|
||
|
||
func (m *ComputeModel) Focus() {}
|
||
|
||
func (m *ComputeModel) Blur() {
|
||
|
||
}
|
||
|
||
func (m *ComputeModel) CaptureKeys() bool {
|
||
return false
|
||
}
|
||
|
||
func (m *ComputeModel) GetLabel() string {
|
||
return m.label
|
||
}
|
||
|
||
func (m *ComputeModel) GetValue() interface{} {
|
||
return m.value
|
||
}
|