package zoopb import ( "fmt" "go.wit.com/lib/protobuf/guipb" "go.wit.com/log" ) func (mt *MachinesTable) Delete() { if mt == nil { log.Info("mt == nil table already deleted") return } log.Info("implement table Delete here") mt.parent.DeleteTable(mt.pb) } func (mt *MachinesTable) UpdateTable(pb *Machines) { // mt.parent.UpdateTable(pb) } func (mt *MachinesTable) GetUuid() string { return mt.pb.Uuid } func (t *MachinesTable) AddButtonFunc(title string, f func(*Machine) string) { t.pb.Order = append(t.pb.Order, title) sf := new(machineButtonFunc) sf.title = title sf.f = f t.buttonFuncs = append(t.buttonFuncs, sf) } type machineButtonFunc struct { title string f func(*Machine) string Custom func(*Machine) } func (mt *MachinesTable) doButtonFunc(name string) bool { for _, sf := range mt.buttonFuncs { if sf.title != name { continue } // log.Info("zoopb: found timefunc name:", name) r := new(guipb.ButtonRow) r.Header = new(guipb.Widget) r.Header.Name = name all := mt.x.All() for all.Scan() { m := all.Next() tmp := fmt.Sprintf("%s %s %d", name, sf.f(m), all.Cur()) r.Vals = append(r.Vals, tmp) // log.Info("zoopb: adding", name, r.Vals) } mt.pb.ButtonRows = append(mt.pb.ButtonRows, r) return true } return false } func (it *MachinesIterator) Cur() int { return it.index } func (it *MachineIterator) Cur() int { return it.index }