win_add_bot.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. // package win_add_bot -- добавляет бота
  2. package win_add_bot
  3. import (
  4. "log"
  5. "gitp78su.ipnodns.ru/svi/kern"
  6. . "gitp78su.ipnodns.ru/svi/kern/krn/ktypes"
  7. tk "modernc.org/tk9.0"
  8. . "wartank/app/lev0/types"
  9. )
  10. type WinAddBot struct {
  11. ctx IKernelCtx
  12. winMain *tk.Window
  13. entryName *tk.TEntryWidget
  14. entryPass *tk.TEntryWidget
  15. chBot chan ИБот
  16. }
  17. func NewWinAddBot(chBot chan ИБот) *WinAddBot {
  18. sf := &WinAddBot{
  19. winMain: tk.App,
  20. ctx: kern.GetKernelCtx(),
  21. chBot: chBot,
  22. }
  23. winBotAdd := sf.winMain.Toplevel()
  24. winBotAdd.WmTitle("Добавить бота")
  25. tk.WmGeometry(winBotAdd.Window, "480x320")
  26. frmName := winBotAdd.Frame()
  27. tk.Pack(frmName, tk.Fill(tk.FILL_X), tk.Side(tk.TOP))
  28. lblName := frmName.Label(tk.Txt("Имя бота"))
  29. tk.Pack(lblName, tk.Side(tk.LEFT))
  30. varName := tk.Textvariable("name?")
  31. sf.entryName = frmName.TEntry(varName)
  32. tk.Pack(sf.entryName, tk.Fill(tk.FILL_X))
  33. frmPass := winBotAdd.Frame()
  34. tk.Pack(frmPass, tk.Fill(tk.FILL_X), tk.Side(tk.TOP))
  35. varPass := tk.Textvariable("login?")
  36. sf.entryPass = frmName.TEntry(varPass)
  37. tk.Pack(sf.entryPass, tk.Fill(tk.FILL_X))
  38. frmBtn := winBotAdd.Frame()
  39. tk.Pack(frmBtn, tk.Side(tk.BOTTOM), tk.Fill(tk.FILL_X))
  40. btnSave := frmBtn.Button(tk.Txt("Сохранить"), tk.Command(sf.clickSave))
  41. tk.Pack(btnSave, tk.Side(tk.RIGHT))
  42. return sf
  43. }
  44. func (sf *WinAddBot) clickSave() {
  45. txtLogin := sf.entryName.Textvariable()
  46. txtPass := sf.entryPass.Textvariable()
  47. log.Printf("entry=%v\tlogin=%v\n", txtLogin, txtPass)
  48. ботоФерма := sf.ctx.Get("ботоФерма").Val().(ИБотоФерма)
  49. res := ботоФерма.НовБот(txtLogin, txtPass, true)
  50. if res.IsErr() {
  51. log.Fatalf("Desktop.botAdd(): login=%v, err\n\t%v", txtLogin, res.Error())
  52. }
  53. lstBot := ботоФерма.ListBot()
  54. for _, bot := range lstBot {
  55. if txtLogin == bot.Имя() {
  56. sf.chBot <- bot
  57. return
  58. }
  59. }
  60. }