From affb055c56ca86b1a2e1d409c45d6fd0091d446b Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Sun, 23 Feb 2025 03:18:18 -0600 Subject: early attempt at tablepb.Update() --- doGui.go | 67 +++++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 37 insertions(+), 30 deletions(-) diff --git a/doGui.go b/doGui.go index 3fb98a8..1a83491 100644 --- a/doGui.go +++ b/doGui.go @@ -61,17 +61,13 @@ func drawWindow(win *gadgets.BasicWindow) { hyperWin = makeHypervisorsWindow(me.cluster.H) }) - var testWin *GenericWindow - grid.NewButton("all defined droplets", func() { - if testWin != nil { - testWin.Toggle() + var dropWin *GenericWindow + var dropTable *virtpb.DropletsTable + grid.NewButton("droplets", func() { + if dropWin != nil { + dropWin.Toggle() return } - d := me.cluster.GetDropletsPB() - testWin = makeDropletsWindow(d) - }) - - grid.NewButton("Running droplets", func() { d := me.cluster.GetDropletsPB() var found *virtpb.Droplets found = virtpb.NewDroplets() @@ -83,19 +79,33 @@ func drawWindow(win *gadgets.BasicWindow) { } found.Append(vm) } - makeDropletsWindow(found) + dropWin, dropTable = makeDropletsWindow(found) + dropWin.Win.Custom = func() { + log.Info("hiding droplet table window") + } }) - /* - var test2 *GenericWindow - grid.NewButton("test2", func() { - if test2 != nil { - test2.Toggle() - return - } - test2 = makeDropletsWindow(me.machines) - }) - */ + grid.NewButton("Update droplets table", func() { + if dropTable == nil { + log.Info("make the droplets window first") + return + } + dropTable.Update() + }) + + grid.NewButton("ConfigSave()", func() { + log.Info("todo: find this code") + }) + + var testWin *GenericWindow + grid.NewButton("create droplet", func() { + if testWin != nil { + testWin.Toggle() + return + } + d := me.cluster.GetDropletsPB() + testWin, _ = makeDropletsWindow(d) + }) } func findVersion(m *zoopb.Machine, pkgname string) string { @@ -106,7 +116,7 @@ func findVersion(m *zoopb.Machine, pkgname string) string { return zood.Version } -func makeDropletsWindow(pb *virtpb.Droplets) *GenericWindow { +func makeDropletsWindow(pb *virtpb.Droplets) (*GenericWindow, *virtpb.DropletsTable) { win := NewGenericWindow("Droplets registered with Virtigo", "Buttons of things") grid := win.Group.RawGrid() grid.NewButton("Create", func() { @@ -122,6 +132,11 @@ func makeDropletsWindow(pb *virtpb.Droplets) *GenericWindow { t.AddHostname() t.AddMemory() t.AddCpus() + t.AddTimeFunc("age", func(d *virtpb.Droplet) time.Time { + age := d.Current.OnSince.AsTime() + log.Info("age", d.Hostname, virtpb.FormatDuration(time.Since(age))) + return age + }) t.AddStringFunc("State", func(d *virtpb.Droplet) string { if d.Current.State == virtpb.DropletState_ON { return "ON" @@ -139,16 +154,8 @@ func makeDropletsWindow(pb *virtpb.Droplets) *GenericWindow { tmp := strings.Join(macs, "\n") return strings.TrimSpace(tmp) }) - /* - t.AddStringFunc("zood", func(m *zoopb.Machine) string { - return findVersion(m, "zood") - }) - t.AddTimeFunc("age", func(m *zoopb.Machine) time.Time { - return m.Laststamp.AsTime() - }) - */ t.ShowTable() - return win + return win, t } func makeHypervisorsWindow(pb *virtpb.Hypervisors) *GenericWindow { -- cgit v1.2.3