diff options
| author | Jeff Carr <[email protected]> | 2019-05-29 07:24:40 -0700 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2019-05-29 07:24:40 -0700 |
| commit | 8049b087e9148e331208d2dd1e1af4f7d47e5edb (patch) | |
| tree | 36227dd649edf85cde99695a9a3995e4a5ea3aac /vmBox.go | |
| parent | 001ecda358e3aa3ef8ccbe917b118200a02a2699 (diff) | |
start to refactor the splash area code
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'vmBox.go')
| -rw-r--r-- | vmBox.go | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/vmBox.go b/vmBox.go new file mode 100644 index 0000000..541ef44 --- /dev/null +++ b/vmBox.go @@ -0,0 +1,125 @@ +package gui + +import "log" +import "fmt" + +import "github.com/andlabs/ui" +import _ "github.com/andlabs/ui/winmanifest" + +import pb "git.wit.com/wit/witProtobuf" + +import "github.com/davecgh/go-spew/spew" + +func GoShowVM() { + ui.Main(ShowVM) +} + +func ShowVM() { + name := Data.CurrentVM.Name + log.Println("ShowVM() START Data.CurrentVM=", Data.CurrentVM) + VMwin := ui.NewWindow("VM " + name, 500, 300, false) + + // create a 'fake' button entry for the mouse clicks + var newButtonMap ButtonMap + newButtonMap.Action = "WINDOW CLOSE" + newButtonMap.W = VMwin + Data.AllButtons = append(Data.AllButtons, newButtonMap) + + VMwin.OnClosing(func(*ui.Window) bool { + mouseClick(&newButtonMap) + return true + }) + ui.OnShouldQuit(func() bool { + mouseClick(&newButtonMap) + return true + }) + + VMtab := ui.NewTab() + VMwin.SetChild(VMtab) + VMwin.SetMargined(true) + + CreateVmBox(VMtab, Data.CurrentVM) + VMwin.Show() +} + +func AddVmConfigureTab(name string, pbVM *pb.Event_VM) { + CreateVmBox(Data.cloudTab, Data.CurrentVM) +} + +func CreateVmBox(tab *ui.Tab, vm *pb.Event_VM) { + log.Println("CreateVmBox() START") + log.Println("CreateVmBox() vm.Name", vm.Name) + spew.Dump(vm) + if (Data.Debug) { + spew.Dump(vm) + } + vbox := ui.NewVerticalBox() + vbox.SetPadded(true) + + hboxAccount := ui.NewHorizontalBox() + hboxAccount.SetPadded(true) + vbox.Append(hboxAccount, false) + + // Add hostname entry box + makeEntryVbox(hboxAccount, "hostname:", vm.Hostname, true, "Hostname") + makeEntryVbox(hboxAccount, "IPv6:", vm.IPv6, true, "IPv6") + makeEntryVbox(hboxAccount, "RAM:", fmt.Sprintf("%d",vm.Memory), true, "Memory") + makeEntryVbox(hboxAccount, "CPU:", fmt.Sprintf("%d",vm.Cpus), true, "Cpus") + makeEntryVbox(hboxAccount, "Disk (GB):",fmt.Sprintf("%d",vm.Disk), true, "Disk") + makeEntryVbox(hboxAccount, "OS Image:", vm.BaseImage, true, "BaseImage") + + vbox.Append(ui.NewHorizontalSeparator(), false) + + hboxButtons := ui.NewHorizontalBox() + hboxButtons.SetPadded(true) + vbox.Append(hboxButtons, false) + + hboxButtons.Append(CreateButton(nil, vm, "Power On", "POWERON", nil), false) + hboxButtons.Append(CreateButton(nil, vm, "Power Off", "POWEROFF", nil), false) + hboxButtons.Append(CreateButton(nil, vm, "Destroy", "DESTROY", nil), false) + hboxButtons.Append(CreateButton(nil, vm, "ping", "PING", runPingClick), false) + hboxButtons.Append(CreateButton(nil, vm, "Console", "XTERM", runTestExecClick), false) + hboxButtons.Append(CreateButton(nil, vm, "Save", "SAVE", nil), false) + hboxButtons.Append(CreateButton(nil, vm, "Done", "DONE", nil), false) + + AddBoxToTab(Data.CurrentVM.Name, tab, vbox) +} + +func createAddVmBox(tab *ui.Tab, name string, b *ButtonMap) { + log.Println("createAddVmBox() START") + vbox := ui.NewVerticalBox() + vbox.SetPadded(true) + + hbox := ui.NewHorizontalBox() + hbox.SetPadded(true) + vbox.Append(hbox, false) + + // Add hostname entry box + hostname := makeEntryHbox(vbox, "Hostname:", "testhost", true, "Hostname") + memory := makeEntryHbox(vbox, "Memory:", "512", true, "Memory") + disk := makeEntryHbox(vbox, "Disk:", "20", true, "Disk") + + log.Println("createAddVmBox() hostname, memory, disk =", hostname, memory, disk) + + vbox.Append(ui.NewHorizontalSeparator(), false) + + hboxButtons := ui.NewHorizontalBox() + hboxButtons.SetPadded(true) + vbox.Append(hboxButtons, false) + + var newb ButtonMap + newb.Action = "CREATE" + newb.VM = b.VM + newb.Account = b.Account + newb.T = tab + hostname.B = &newb + memory.B = &newb + disk.B = &newb + hboxButtons.Append(AddButton(&newb, "Add Virtual Machine"), false) + + // hboxButtons.Append(CreateButton(nil, nil, "Add Virtual Machine","CREATE",nil), false) + hboxButtons.Append(CreateButton(nil, nil, "Cancel", "CLOSE", nil), false) + + name += " (" + b.Account.Nick + ")" + AddBoxToTab(name, tab, vbox) +} |
