diff --git a/machine.gui.go b/machine.gui.go index e077339..5bd4501 100644 --- a/machine.gui.go +++ b/machine.gui.go @@ -11,7 +11,6 @@ func (x *Machines) NewTable(title string) *MachinesTable { t.x = x pb := new(guipb.Table) pb.Title = title - pb.Order = append(pb.Order, "Memory") t.pb = pb return t } @@ -32,6 +31,26 @@ func (t *MachinesTable) AddHostname() { t.pb.Order = append(t.pb.Order, "Memory") } +func (mt *MachinesTable) doStringFunc(name string) { + for _, sf := range mt.stringFuncs { + if sf.title != name { + continue + } + log.Info("zoopb: found stringfunc name:", name) + r := new(guipb.StringRow) + r.Header = new(guipb.Widget) + r.Header.Name = name + all := mt.x.All() + for all.Scan() { + m := all.Next() + r.Vals = append(r.Vals, sf.f(m)) + log.Info("zoopb: adding", name, r.Vals) + } + mt.pb.StringRows = append(mt.pb.StringRows, r) + return + } +} + func (mt *MachinesTable) MakeTable() { for _, name := range mt.pb.Order { log.Info("zoopb: looking for row name()", name) @@ -39,39 +58,44 @@ func (mt *MachinesTable) MakeTable() { case "Hostname": r := new(guipb.StringRow) r.Header = new(guipb.Widget) - r.Header.Name = "Hostname" + r.Header.Name = name all := mt.x.All() for all.Scan() { m := all.Next() r.Vals = append(r.Vals, m.Hostname) - log.Info("zoopb: adding hostname", r.Vals) + log.Info("zoopb: adding", name, r.Vals) } mt.pb.StringRows = append(mt.pb.StringRows, r) + continue case "Cpus": i := new(guipb.IntRow) i.Header = new(guipb.Widget) - i.Header.Name = "Cpus" + i.Header.Name = name all := mt.x.All() for all.Scan() { m := all.Next() i.Vals = append(i.Vals, m.Cpus) - log.Info("zoopb: adding cpus", i.Vals) + log.Info("zoopb: adding", name, i.Vals) } mt.pb.IntRows = append(mt.pb.IntRows, i) + continue case "Memory": i := new(guipb.IntRow) i.Header = new(guipb.Widget) - i.Header.Name = "Memories" + i.Header.Name = name all := mt.x.All() for all.Scan() { m := all.Next() i.Vals = append(i.Vals, m.Memory) - log.Info("zoopb: adding cpus", i.Vals) + log.Info("zoopb: adding", name, i.Vals) } mt.pb.IntRows = append(mt.pb.IntRows, i) + continue default: // mt.addFuncRow(name) } + log.Info("zoopb: didn't find name. trying StringFuncs", name) + mt.doStringFunc(name) } }