The git.wit.com/gui code is in much better shape now
so I can move the focus to here. Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
parent
468842e572
commit
1f23138db8
|
@ -72,28 +72,16 @@ func ReadReceivedData(data *pb.Event, mh *gui.TableData, box *gui.GuiBox) {
|
|||
|
||||
// create entries for the mouse clicks within tables
|
||||
var newGuiButton gui.GuiButton
|
||||
newGuiButton.Action = "SHOW VM WAS HERE"
|
||||
newGuiButton.Custom = showVmMouseClick
|
||||
newGuiButton.VM = vm // set the button to this VM
|
||||
// newGuiButton.GW = box
|
||||
if (box.Window == nil) {
|
||||
newGuiButton.Action = "SHOW VM WAS HERE NIL"
|
||||
panic("ReadReceivedData() box == nil")
|
||||
}
|
||||
newGuiButton.Account = data.Account
|
||||
newGuiButton.Box = mh.Box
|
||||
newGuiButton.Values = makeGuiButtonValues(box, data.Account, vm, "JWC", "SHOW VM 33", showVmMouseClick)
|
||||
gui.Data.AllButtons = append(gui.Data.AllButtons, &newGuiButton)
|
||||
mh.Rows[row].HumanData[6].Button = &newGuiButton
|
||||
// mh.Rows[row].HumanData[6].VM = vm
|
||||
|
||||
// mh.Rows[row].VM = vm
|
||||
|
||||
log.Println("\tvm=", vm)
|
||||
log.Println("\tvm.Name=", vm.Name)
|
||||
log.Println("\tRows[row]=", mh.Rows[row])
|
||||
log.Println("\tRows[row]=", row)
|
||||
log.Println("\tRows[row].Name=", mh.Rows[row].Name)
|
||||
log.Println(vm)
|
||||
log.Println("\tvm.Name=", vm.Name, mh.Rows[row].Name)
|
||||
row += 1
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,13 +30,13 @@ func makeCloudInfoBox(gw *gui.GuiWindow) {
|
|||
gui.NewLabel(box, config.Accounts[key].Email)
|
||||
|
||||
name := "Login " + config.Accounts[key].Nick
|
||||
gui.CreateButton(box, config.Accounts[key], nil, name, "LOGIN", login)
|
||||
makeButton(box, config.Accounts[key], nil, name, "LOGIN", login)
|
||||
|
||||
name = "Show " + config.Accounts[key].Nick
|
||||
gui.CreateButton(box, config.Accounts[key], nil, name, "SHOW", nil)
|
||||
makeButton(box, config.Accounts[key], nil, name, "SHOW", nil)
|
||||
}
|
||||
|
||||
gui.CreateButton(box, nil, nil, "Add Account", "ADD TAB", addSubdomainButton)
|
||||
gui.CreateButton(box, nil, nil, "Quit", "QUIT", nil)
|
||||
makeButton(box, nil, nil, "Add Account", "ADD TAB", addSubdomainButton)
|
||||
makeButton(box, nil, nil, "Quit", "QUIT", nil)
|
||||
log.Println("makeCloudInfoBox() END")
|
||||
}
|
||||
|
|
|
@ -24,19 +24,30 @@ func mainMouseClick(b *gui.GuiButton) {
|
|||
log.Println("THIS IS PROBABLY A BUG IN git.wit.com/gui")
|
||||
onExit(fmt.Errorf("mainMouseClick() got b = nil"))
|
||||
}
|
||||
log.Println("mainMouseClick() BACK IN CONTROL PANEL CODE b.Action =", b.Action)
|
||||
log.Println("mainMouseClick() BACK IN CONTROL PANEL CODE")
|
||||
|
||||
var gw *gui.GuiWindow
|
||||
gw = b.Box.Window
|
||||
|
||||
if (gw == nil) {
|
||||
log.Println("THIS BUTTON IS BROKEN gw = nil")
|
||||
log.Println("\tTHIS BUTTON IS BROKEN gw = nil")
|
||||
panic("something")
|
||||
}
|
||||
|
||||
if (b.Action == "QUIT") {
|
||||
var values *myButtonInfo
|
||||
|
||||
if tmp, ok := b.Values.(*myButtonInfo); ! ok {
|
||||
log.Println("\tmainMouseClick() values.Accounts error =", ok)
|
||||
log.Println("\tmainMouseClick() values.Accounts tmp =", tmp)
|
||||
} else {
|
||||
values = tmp
|
||||
}
|
||||
log.Println("\tmainMouseClick() values.Accounts =", values.Accounts)
|
||||
log.Println("\tmainMouseClick() values.Name = ", values.Name)
|
||||
|
||||
if (values.Action == "QUIT") {
|
||||
onExit(nil)
|
||||
} else if (b.Action == "CREATE") {
|
||||
} else if (values.Action == "CREATE") {
|
||||
log.Println("\tTRY TO ADD A NEW VIRTUAL MACHINE")
|
||||
log.Println("\tTRIGGER CREATE VM")
|
||||
gui.Data.State = "CREATE"
|
||||
|
@ -56,25 +67,25 @@ func mainMouseClick(b *gui.GuiButton) {
|
|||
log.Println("defaultEntryChange() FOUND. Entry assigned to Button", b)
|
||||
}
|
||||
}
|
||||
event.Account = b.Account
|
||||
event.Account = values.Account
|
||||
log.Println("\tTRIGGERING CREATE event=", event)
|
||||
log.Println("\tTRIGGERING CREATE event.Account=", event.Account)
|
||||
websocketSendProtobuf(event)
|
||||
} else if (b.Action == "CONFIG") {
|
||||
} else if (values.Action == "CONFIG") {
|
||||
newConfig := loadDefaultConfig()
|
||||
config.Accounts = newConfig.Accounts
|
||||
gui.Data.State = "done"
|
||||
} else if (b.Action == "DEBUG") {
|
||||
} else if (values.Action == "DEBUG") {
|
||||
log.Println("\tdebug.PrintStack() (SHOULD BE JUST THIS goroutine)")
|
||||
debug.PrintStack()
|
||||
} else if (b.Action == "DEBUG FULL") {
|
||||
} else if (values.Action == "DEBUG FULL") {
|
||||
log.Println("\tATTEMPT FULL STACK DUMP")
|
||||
buf := make([]byte, 1<<16)
|
||||
runtime.Stack(buf, true)
|
||||
log.Printf("%s", buf)
|
||||
log.Println("\tFINISHED FULL STACK DUMP")
|
||||
/*
|
||||
} else if (b.Action == "SHOW VM") {
|
||||
} else if (values.Action == "SHOW VM") {
|
||||
if (gui.Data.Debug) {
|
||||
log.Println("\tATTEMPTING TO SHOW VM TAB gw = ", gw)
|
||||
createVmBox(gw, b.VM)
|
||||
|
@ -83,12 +94,12 @@ func mainMouseClick(b *gui.GuiButton) {
|
|||
createVmBox(gw, b.VM)
|
||||
}
|
||||
*/
|
||||
} else if (b.Action == "SHOW") {
|
||||
} else if (values.Action == "SHOW") {
|
||||
log.Println("\tTRIGGER DISPLAY ACCOUNT")
|
||||
gui.Data.State = "SEND WEBSOCKET"
|
||||
|
||||
event := pb.MakeGetEvent()
|
||||
event.Account = b.Account
|
||||
event.Account = values.Account
|
||||
websocketSendProtobuf(event)
|
||||
|
||||
count := 0
|
||||
|
@ -107,8 +118,8 @@ func mainMouseClick(b *gui.GuiButton) {
|
|||
log.Println("\tSHOW VMS count =", count)
|
||||
// TODO: make sure login worked & the account really has zero VMs
|
||||
// if (count != 0) {
|
||||
name := "Virtual Machines (" + b.Account.Nick + ")"
|
||||
mh := addVmsTab(gw, name, count, b.Account)
|
||||
name := "Virtual Machines (" + values.Account.Nick + ")"
|
||||
mh := addVmsTab(gw, name, count, values.Account)
|
||||
ReadReceivedData(currentMessage, mh, b.Box)
|
||||
// }
|
||||
currentMessage = nil
|
||||
|
@ -126,17 +137,25 @@ func mainMouseClick(b *gui.GuiButton) {
|
|||
}
|
||||
}
|
||||
log.Println("mainMouseClick() BACK IN CONTROL PANEL CODE")
|
||||
log.Println("mainMouseClick() FAILED TO FIND b.Action =", b.Action)
|
||||
log.Println("mainMouseClick() FAILED TO FIND values.Action =", values.Action)
|
||||
log.Println("mainMouseClick() END")
|
||||
}
|
||||
|
||||
func makeButton(box *gui.GuiBox, a *pb.Account, vm *pb.Event_VM,
|
||||
name string, action string, custom func(*gui.GuiButton)) *gui.GuiButton {
|
||||
// stores the fields we want to map into our private structure 'values'
|
||||
func makeGuiButtonValues(box *gui.GuiBox, a *pb.Account, vm *pb.Event_VM,
|
||||
name string, action string, custom func(*gui.GuiButton)) *myButtonInfo {
|
||||
val := &myButtonInfo{}
|
||||
val.Account = a
|
||||
val.Accounts = config.Accounts
|
||||
val.VM = vm
|
||||
val.Custom = custom
|
||||
val.Name = "jcarr"
|
||||
val.Action = action
|
||||
return val
|
||||
}
|
||||
|
||||
func makeButton(box *gui.GuiBox, a *pb.Account, vm *pb.Event_VM,
|
||||
name string, action string, custom func(*gui.GuiButton)) *gui.GuiButton {
|
||||
val := makeGuiButtonValues(box, a, vm, name, action, custom)
|
||||
return gui.NewCreateButton(box, custom, name, val)
|
||||
}
|
||||
|
|
|
@ -75,7 +75,7 @@ func addVmsTab(gw *gui.GuiWindow, name string, count int, a *pb.Account) *gui.Ta
|
|||
human += 1
|
||||
|
||||
mh := gui.AddTableTab(gw, name, count, parts)
|
||||
gui.CreateButton(mh.Box, a, nil, "Add Virtual Machine", "JUNK", createAddVmBox)
|
||||
makeButton(mh.Box, a, nil, "Add Virtual Machine", "JUNK", createAddVmBox)
|
||||
return mh
|
||||
}
|
||||
|
||||
|
@ -83,7 +83,8 @@ func createAddVmBox(b *gui.GuiButton) {
|
|||
log.Println("createAddVmBox() START")
|
||||
gw := b.Box.Window
|
||||
log.Println("createAddVmBox() gw =", gw)
|
||||
name := "(" + b.Account.Nick + ")"
|
||||
values, _ := b.Values.(*myButtonInfo)
|
||||
name := "(" + values.Account.Nick + ")"
|
||||
|
||||
// gw.BoxMap["ADD VM" + name] = box
|
||||
|
||||
|
@ -100,13 +101,14 @@ func createAddVmBox(b *gui.GuiButton) {
|
|||
|
||||
gui.HorizontalBreak(box)
|
||||
|
||||
gui.CreateButton(box, b.Account, nil, "Add Virtual Machine", "CREATE", nil)
|
||||
gui.CreateButton(box, b.Account, nil, "Cancel", "CLOSE", nil)
|
||||
makeButton(box, values.Account, nil, "Add Virtual Machine", "CREATE", nil)
|
||||
makeButton(box, values.Account, nil, "Cancel", "CLOSE", nil)
|
||||
}
|
||||
|
||||
func showVmMouseClick(b *gui.GuiButton) {
|
||||
log.Println("showVmMouseClick() START b.Box.Window =", b.Box.Window)
|
||||
createVmBox(b.Box.Window, b.VM)
|
||||
values, _ := b.Values.(*myButtonInfo)
|
||||
createVmBox(b.Box.Window, values.VM)
|
||||
log.Println("showVmMouseClick() END")
|
||||
}
|
||||
|
||||
|
@ -129,13 +131,13 @@ func createVmBox(gw *gui.GuiWindow, vm *pb.Event_VM) {
|
|||
|
||||
gui.HorizontalBreak(box)
|
||||
|
||||
gui.CreateButton(box, nil, vm, "Power On", "POWERON", nil)
|
||||
gui.CreateButton(box, nil, vm, "Power Off", "POWEROFF", nil)
|
||||
gui.CreateButton(box, nil, vm, "Destroy", "DESTROY", nil)
|
||||
gui.CreateButton(box, nil, vm, "ping", "PING", runPingClick)
|
||||
gui.CreateButton(box, nil, vm, "Console", "XTERM", runTestExecClick)
|
||||
gui.CreateButton(box, nil, vm, "Save", "SAVE", nil)
|
||||
gui.CreateButton(box, nil, vm, "Done", "DONE", nil)
|
||||
makeButton(box, nil, vm, "Power On", "POWERON", nil)
|
||||
makeButton(box, nil, vm, "Power Off", "POWEROFF", nil)
|
||||
makeButton(box, nil, vm, "Destroy", "DESTROY", nil)
|
||||
makeButton(box, nil, vm, "ping", "PING", runPingClick)
|
||||
makeButton(box, nil, vm, "Console", "XTERM", runTestExecClick)
|
||||
makeButton(box, nil, vm, "Save", "SAVE", nil)
|
||||
makeButton(box, nil, vm, "Done", "DONE", nil)
|
||||
}
|
||||
|
||||
func runTestHide(b *gui.GuiButton) {
|
||||
|
@ -151,10 +153,11 @@ func runTestHide(b *gui.GuiButton) {
|
|||
|
||||
func runPingClick(b *gui.GuiButton) {
|
||||
log.Println("runPingClick START")
|
||||
log.Println("runTestExecClick b.VM", b.VM)
|
||||
values, _ := b.Values.(*myButtonInfo)
|
||||
log.Println("runTestExecClick values.VM", values.VM)
|
||||
hostname := "localhost"
|
||||
if (b.VM != nil) {
|
||||
hostname = b.VM.Hostname
|
||||
if (values.VM != nil) {
|
||||
hostname = values.VM.Hostname
|
||||
}
|
||||
spew.Dump(b)
|
||||
var tmp []string
|
||||
|
|
23
login.go
23
login.go
|
@ -19,10 +19,13 @@ func login(b *gui.GuiButton) {
|
|||
// note: this may never be possible because of cross platform
|
||||
// andlabs/ui requirements. windows and macos seem to freak out
|
||||
// when you try to trigger the UI in seperate threads
|
||||
|
||||
values, _ := b.Values.(*myButtonInfo)
|
||||
event := pb.MakeLoginEvent()
|
||||
event.Account = b.Account
|
||||
event.Account = values.Account
|
||||
websocketSendProtobuf(event)
|
||||
|
||||
|
||||
count := 0
|
||||
for {
|
||||
log.Println("\tSleep() in buttonClick() gui.Data.State =", gui.Data.State)
|
||||
|
@ -36,15 +39,15 @@ func login(b *gui.GuiButton) {
|
|||
} else {
|
||||
log.Println("LOGIN currentMessage =", currentMessage)
|
||||
if (currentMessage.Type == pb.Event_OK) {
|
||||
msg := "On account " + b.Account.Nick + "\n"
|
||||
msg := "On account " + values.Account.Nick + "\n"
|
||||
log.Println("\tLOGIN WAS OK!", msg)
|
||||
log.Println("\tLOGIN WAS OK! old button.Account was =", b.Account)
|
||||
log.Println("\tLOGIN WAS OK! old button.Account was =", values.Account)
|
||||
log.Println("\tLOGIN WAS OK! currentMessage.Account =", currentMessage.Account)
|
||||
if (b.Account.Id == currentMessage.Account.Id) {
|
||||
if (b.Account.Token != currentMessage.Account.Token) {
|
||||
if (values.Account.Id == currentMessage.Account.Id) {
|
||||
if (values.Account.Token != currentMessage.Account.Token) {
|
||||
log.Println("\tLOGIN SENT NEW TOKEN")
|
||||
b.Account.Token = currentMessage.Account.Token
|
||||
log.Println("\tLOGIN WAS OK! old button.Account is now =", b.Account)
|
||||
values.Account.Token = currentMessage.Account.Token
|
||||
log.Println("\tLOGIN WAS OK! old button.Account is now =", values.Account)
|
||||
}
|
||||
}
|
||||
log.Println("\tLOGIN WAS OK!")
|
||||
|
@ -53,11 +56,11 @@ func login(b *gui.GuiButton) {
|
|||
log.Println("\tLOGIN FAILED")
|
||||
log.Println("\tLOGIN FAILED")
|
||||
log.Println("\tLOGIN FAILED")
|
||||
msg := "On account " + b.Account.Nick + "\n"
|
||||
msg := "On account " + values.Account.Nick + "\n"
|
||||
msg += "pb.Comment = " + currentMessage.Comment + "\n"
|
||||
msg += "pb.Id = " + fmt.Sprintf("%d", currentMessage.Id) + "\n"
|
||||
msg += "pb.Email = " + b.Account.Email + "\n"
|
||||
msg += "pb.Username = " + b.Account.Username + "\n"
|
||||
msg += "pb.Email = " + values.Account.Email + "\n"
|
||||
msg += "pb.Username = " + values.Account.Username + "\n"
|
||||
gui.ErrorWindow(b.Box.Window, "Login Failed", msg)
|
||||
}
|
||||
currentMessage = nil
|
||||
|
|
Loading…
Reference in New Issue