-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtableColumnEdit.go
41 lines (35 loc) · 982 Bytes
/
tableColumnEdit.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package faithtop
import "github.com/andlabs/ui"
// FTableColumnEdit text column
type FTableColumnEdit struct {
name string
data map[int]string
onGetText func(r int) string
onSetText func(r int, text string)
}
func (f *FTableColumnEdit) getName() string {
return f.name
}
func (f *FTableColumnEdit) getTableValue(model *ui.TableModel, r int) ui.TableValue {
if v, ok := f.data[r]; ok {
return ui.TableString(v)
}
return ui.TableString(f.onGetText(r))
}
func (f *FTableColumnEdit) setTableValue(model *ui.TableModel, r int, v ui.TableValue) {
str := string(v.(ui.TableString))
f.data[r] = str
model.RowChanged(r)
f.onSetText(r, str)
}
func TableColumnEdit(name string, onGetText func(row int) string, onSetText func(row int, text string)) *FTableColumnEdit {
if onGetText == nil {
panic("onGetText cannot be nil")
}
return &FTableColumnEdit{
name: name,
onGetText: onGetText,
onSetText: onSetText,
data: make(map[int]string),
}
}