diff options
| -rw-r--r-- | doAdminGui.go | 5 | ||||
| -rw-r--r-- | windowHypervisors.go | 77 |
2 files changed, 82 insertions, 0 deletions
diff --git a/doAdminGui.go b/doAdminGui.go index 8d71530..5ea68c4 100644 --- a/doAdminGui.go +++ b/doAdminGui.go @@ -95,6 +95,11 @@ func (admin *adminT) doAdminGui() { return } log.Info("Hypervisors len=", admin.hypervisors.Len()) + hwin := newHypervisorsWindow() + hwin.doStdHypervisors(admin.hypervisors) + hwin.win.Custom = func() { + log.Info("hiding table window") + } }) grid.NewButton("show active droplets", func() { diff --git a/windowHypervisors.go b/windowHypervisors.go new file mode 100644 index 0000000..4db757b --- /dev/null +++ b/windowHypervisors.go @@ -0,0 +1,77 @@ +// Copyright 2017-2025 WIT.COM Inc. All rights reserved. +// Use of this source code is governed by the GPL 3.0 + +package main + +import ( + "sync" + + "go.wit.com/gui" + "go.wit.com/lib/gadgets" + "go.wit.com/lib/protobuf/virtpb" + "go.wit.com/log" +) + +type stdHypervisorTableWin struct { + sync.Mutex + win *gadgets.GenericWindow // the machines gui window + box *gui.Node // the machines gui parent box widget + pb *virtpb.Hypervisors // the protobuf + TB *virtpb.HypervisorsTable // the gui table buffer + update bool // if the window should be updated +} + +func (w *stdHypervisorTableWin) Toggle() { + if w == nil { + return + } + if w.win == nil { + return + } + w.win.Toggle() +} + +func newHypervisorsWindow() *stdHypervisorTableWin { + dwin := new(stdHypervisorTableWin) + dwin.win = gadgets.NewGenericWindow("virtigo current hypervisors", "things to do") + dwin.win.Custom = func() { + log.Info("test delete window here") + } + + // make a box at the bottom of the window for the protobuf table + dwin.box = dwin.win.Bottom.Box().SetProgName("TBOX") + return dwin +} + +// default table protobuf window +func (dw *stdHypervisorTableWin) doStdHypervisors(pb *virtpb.Hypervisors) { + dw.Lock() + defer dw.Unlock() + + // erase the old table + if dw.TB != nil { + dw.TB.Delete() + dw.TB = nil + } + + // init the table + dw.pb = pb + t := dw.pb.NewTable("HypervisorsPB Off") + t.NewUuid() + t.SetParent(dw.box) + + // pick the columns + t.AddHostname() + t.AddMemory() + t.AddCpus() + + // display the protobuf + dw.TB = t + f := func(e *virtpb.Hypervisor) { + log.Info("std HypervisorWindow() something here", e.Hostname) + // m.Enabled = true + } + dw.TB.Custom(f) + + dw.TB.ShowTable() +} |
