experiement with 'show vm' as a window or a tab

Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
Jeff Carr 2019-05-26 17:28:34 -07:00
parent 38185c3156
commit 34d081f856
3 changed files with 35 additions and 28 deletions

17
gui.go
View File

@ -134,14 +134,16 @@ func mouseClick(b *ButtonMap) {
createAddVmBox(Data.cloudTab, "Create New Virtual Machine") createAddVmBox(Data.cloudTab, "Create New Virtual Machine")
return return
} }
/*
if (b.Action == "SHOW VM") { if (b.Action == "SHOW VM") {
Data.CurrentVM = b.VM Data.CurrentVM = b.VM
if (Data.Debug) { if (Data.Debug) {
go ui.Main(ShowVM) go ui.Main(ShowVM)
} else { } else {
createVmBox(Data.cloudTab, b.VM) CreateVmBox(Data.cloudTab, b.VM)
} }
} }
*/
if (b.Action == "WINDOW CLOSE") { if (b.Action == "WINDOW CLOSE") {
b.W.Hide() b.W.Hide()
// TODO: fix this (seems to crash? maybe because we are in the button here?) // TODO: fix this (seems to crash? maybe because we are in the button here?)
@ -203,12 +205,13 @@ func CreateButton(a *pb.Account, vm *pb.Event_VM,
newB.OnClicked(defaultButtonClick) newB.OnClicked(defaultButtonClick)
var newmap ButtonMap var newmap ButtonMap
newmap.B = newB newmap.B = newB
newmap.Account = a newmap.T = Data.cloudTab
newmap.VM = vm newmap.Account = a
newmap.Action = action newmap.VM = vm
newmap.custom = custom newmap.Action = action
Data.AllButtons = append(Data.AllButtons, newmap) newmap.custom = custom
Data.AllButtons = append(Data.AllButtons, newmap)
return newB return newB
} }

View File

@ -235,6 +235,10 @@ func makeCloudWindow() {
Data.State = "splash" Data.State = "splash"
} }
func GoShowVM() {
ui.Main(ShowVM)
}
func ShowVM() { func ShowVM() {
name := Data.CurrentVM.Name name := Data.CurrentVM.Name
log.Println("ShowVM() START Data.CurrentVM=", Data.CurrentVM) log.Println("ShowVM() START Data.CurrentVM=", Data.CurrentVM)
@ -259,12 +263,12 @@ func ShowVM() {
VMwin.SetChild(VMtab) VMwin.SetChild(VMtab)
VMwin.SetMargined(true) VMwin.SetMargined(true)
createVmBox(VMtab, Data.CurrentVM) CreateVmBox(VMtab, Data.CurrentVM)
VMwin.Show() VMwin.Show()
} }
func AddVmConfigureTab(name string, pbVM *pb.Event_VM) { func AddVmConfigureTab(name string, pbVM *pb.Event_VM) {
createVmBox(Data.cloudTab, Data.CurrentVM) CreateVmBox(Data.cloudTab, Data.CurrentVM)
} }
// makeEntryBox(box, "hostname:", "blah.foo.org") { // makeEntryBox(box, "hostname:", "blah.foo.org") {
@ -312,12 +316,12 @@ func makeEntryHbox(hbox *ui.Box, a string, b string, edit bool) {
// End 'Nickname' vertical box // End 'Nickname' vertical box
} }
func createVmBox(tab *ui.Tab, pbVM *pb.Event_VM) { func CreateVmBox(tab *ui.Tab, vm *pb.Event_VM) {
log.Println("createVmBox() START") log.Println("CreateVmBox() START")
log.Println("createVmBox() pbVM.Name", pbVM.Name) log.Println("CreateVmBox() vm.Name", vm.Name)
spew.Dump(pbVM) spew.Dump(vm)
if (Data.Debug) { if (Data.Debug) {
spew.Dump(pbVM) spew.Dump(vm)
} }
vbox := ui.NewVerticalBox() vbox := ui.NewVerticalBox()
vbox.SetPadded(true) vbox.SetPadded(true)
@ -327,12 +331,12 @@ func createVmBox(tab *ui.Tab, pbVM *pb.Event_VM) {
vbox.Append(hboxAccount, false) vbox.Append(hboxAccount, false)
// Add hostname entry box // Add hostname entry box
makeEntryVbox(hboxAccount, "hostname:", pbVM.Hostname, true) makeEntryVbox(hboxAccount, "hostname:", vm.Hostname, true)
makeEntryVbox(hboxAccount, "IPv6:", pbVM.IPv6, true) makeEntryVbox(hboxAccount, "IPv6:", vm.IPv6, true)
makeEntryVbox(hboxAccount, "RAM:", fmt.Sprintf("%d",pbVM.Memory), true) makeEntryVbox(hboxAccount, "RAM:", fmt.Sprintf("%d",vm.Memory), true)
makeEntryVbox(hboxAccount, "CPU:", fmt.Sprintf("%d",pbVM.Cpus), true) makeEntryVbox(hboxAccount, "CPU:", fmt.Sprintf("%d",vm.Cpus), true)
makeEntryVbox(hboxAccount, "Disk (GB):", fmt.Sprintf("%d",pbVM.Disk), true) makeEntryVbox(hboxAccount, "Disk (GB):", fmt.Sprintf("%d",vm.Disk), true)
makeEntryVbox(hboxAccount, "OS Image:", pbVM.BaseImage, true) makeEntryVbox(hboxAccount, "OS Image:", vm.BaseImage, true)
vbox.Append(ui.NewHorizontalSeparator(), false) vbox.Append(ui.NewHorizontalSeparator(), false)
@ -340,14 +344,13 @@ func createVmBox(tab *ui.Tab, pbVM *pb.Event_VM) {
hboxButtons.SetPadded(true) hboxButtons.SetPadded(true)
vbox.Append(hboxButtons, false) vbox.Append(hboxButtons, false)
log.Println("pbVM =", pbVM) hboxButtons.Append(CreateButton(nil, vm, "Power On", "POWERON", nil), false)
hboxButtons.Append(CreateButton(nil, pbVM, "Power On", "POWERON", nil), false) hboxButtons.Append(CreateButton(nil, vm, "Power Off", "POWEROFF", nil), false)
hboxButtons.Append(CreateButton(nil, pbVM, "Power Off", "POWEROFF", nil), false) hboxButtons.Append(CreateButton(nil, vm, "Destroy", "DESTROY", nil), false)
hboxButtons.Append(CreateButton(nil, pbVM, "Destroy", "DESTROY", nil), false) hboxButtons.Append(CreateButton(nil, vm, "ping", "PING", runPingClick), false)
hboxButtons.Append(CreateButton(nil, pbVM, "ping", "PING", runPingClick), false) hboxButtons.Append(CreateButton(nil, vm, "Console", "XTERM", runTestExecClick), false)
hboxButtons.Append(CreateButton(nil, pbVM, "Console", "XTERM", runTestExecClick), false) hboxButtons.Append(CreateButton(nil, vm, "Save", "SAVE", nil), false)
hboxButtons.Append(CreateButton(nil, pbVM, "Save", "SAVE", nil), false) hboxButtons.Append(CreateButton(nil, vm, "Done", "DONE", nil), false)
hboxButtons.Append(CreateButton(nil, pbVM, "Done", "DONE", nil), false)
tab.Append(Data.CurrentVM.Name, vbox) tab.Append(Data.CurrentVM.Name, vbox)
tab.SetMargined(0, true) tab.SetMargined(0, true)

View File

@ -102,6 +102,7 @@ type ButtonMap struct {
FB *ui.FontButton FB *ui.FontButton
A *ui.Area A *ui.Area
W *ui.Window W *ui.Window
T *ui.Tab
Account *pb.Account Account *pb.Account
VM *pb.Event_VM VM *pb.Event_VM