// 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/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 tbwin *tableWindow grid.NewButton("show zoo", func() { win.Disable() defer win.Enable() if tbwin == nil { log.Info("show zoo here") tbwin = makeTableWindow() } if tbwin.Hidden() { tbwin.Show() } else { tbwin.Hide() } return }) grid.NewButton("addTable", func() { if tbwin == nil { log.Info("show the table first") return } tbwin.showTable(me.machines) }) } func (tw *tableWindow) showTable(allm *zoopb.Machines) { all := allm.All() for all.Scan() { m := all.Next() tw.grid.NewLabel("hello") tw.grid.NewLabel(m.Hostname) tw.grid.NextRow() } }