summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doAdminGui.go5
-rw-r--r--windowHypervisors.go77
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()
+}