diff options
Diffstat (limited to 'doGui.go')
| -rw-r--r-- | doGui.go | 117 |
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 +} |
