summaryrefslogtreecommitdiff
path: root/doGui.go
diff options
context:
space:
mode:
Diffstat (limited to 'doGui.go')
-rw-r--r--doGui.go117
1 files changed, 117 insertions, 0 deletions
diff --git a/doGui.go b/doGui.go
new file mode 100644
index 0000000..623c53e
--- /dev/null
+++ b/doGui.go
@@ -0,0 +1,117 @@
+// Copyright 2017-2025 WIT.COM Inc. All rights reserved.
+// Use of this source code is governed by the GPL 3.0
+
+package main
+
+// An app to submit patches for the 30 GO GUI repos
+
+import (
+ "os"
+ "time"
+
+ "go.wit.com/gui"
+ "go.wit.com/lib/gadgets"
+ "go.wit.com/lib/protobuf/virtbuf"
+ "go.wit.com/lib/protobuf/zoopb"
+ "go.wit.com/log"
+)
+
+func debug() {
+ for {
+ time.Sleep(90 * time.Second)
+ log.Info("TODO: zookeeper scan here. repo count =")
+ }
+}
+
+func doGui() {
+ me.myGui = gui.New()
+ me.myGui.InitEmbed(resources)
+ me.myGui.Default()
+
+ mainWindow := gadgets.RawBasicWindow("Zookeeper: (inventory your cluster)")
+ mainWindow.Make()
+ mainWindow.Show()
+ mainWindow.Custom = func() {
+ log.Warn("Main window close")
+ os.Exit(0)
+ }
+
+ drawWindow(mainWindow)
+
+ // sits here forever
+ debug()
+
+}
+
+func drawWindow(win *gadgets.BasicWindow) {
+ box := win.Box()
+
+ vbox := box.NewVerticalBox("BOX2")
+
+ group1 := vbox.NewGroup("Zookeeper Settings")
+ grid := group1.NewGrid("buildOptions", 0, 0)
+
+ var testWin *genericWindow
+ grid.NewButton("machine list", func() {
+ if testWin != nil {
+ testWin.Toggle()
+ return
+ }
+ d := me.cluster.GetDropletsPB()
+ testWin = makeDropletsWindow(d)
+ })
+
+ /*
+ var test2 *genericWindow
+ grid.NewButton("test2", func() {
+ if test2 != nil {
+ test2.Toggle()
+ return
+ }
+ test2 = makeDropletsWindow(me.machines)
+ })
+ */
+}
+
+func findVersion(m *zoopb.Machine, pkgname string) string {
+ zood := m.Packages.FindByName(pkgname)
+ if zood == nil {
+ return "n/a"
+ }
+ return zood.Version
+}
+
+func makeDropletsWindow(pb *virtbuf.Droplets) *genericWindow {
+ win := initGenericWindow("Droplets registered with Virtigo", "Buttons of things")
+ grid := win.group.RawGrid()
+ grid.NewButton("List", func() {
+ log.Info("list...")
+ })
+ grid.NewButton("more", func() {
+ log.Info("?")
+ })
+ grid.NextRow()
+ grid.NewButton("smore", func() {
+ log.Info("smore")
+ })
+
+ tbox := win.win.Box().Vertical() // a vertical box (like a stack of books)
+ t := pb.NewTable("test 2")
+ t.SetParent(tbox)
+ t.AddHostname()
+ t.AddMemory()
+ t.AddCpus()
+ /*
+ t.AddStringFunc("sMB", func(m *zoopb.Machine) string {
+ return fmt.Sprintf("%d mb", m.Memory/(1024*1024))
+ })
+ 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
+}