frm_bank.go 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. // package frm_bank -- фрейм состояния банка
  2. package frm_bank
  3. import (
  4. "time"
  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. // "wartank/desktop/win_add_bot"
  10. // "wartank/desktop/win_main/frm_status"
  11. )
  12. type FrmBank struct {
  13. ctx IKernelCtx
  14. лблУровень *tk.TLabelWidget
  15. лблРабота *tk.TLabelWidget
  16. лблВремяОстат *tk.TLabelWidget
  17. }
  18. func NewFrmBank(frmStateBot *tk.TFrameWidget) *FrmBank {
  19. sf := &FrmBank{
  20. ctx: GetKernelCtx(),
  21. }
  22. frmBank := frmStateBot.Frame(tk.Border(1), tk.Relief(tk.SUNKEN))
  23. tk.Pack(frmBank, tk.Side(tk.LEFT), tk.Fill(tk.FILL_Y))
  24. лблПараметрыБанк := frmBank.Label(tk.Txt("Банк"),
  25. tk.Background("#888"),
  26. tk.Border(1),
  27. tk.Relief(tk.GROOVE),
  28. )
  29. tk.Pack(лблПараметрыБанк, tk.Side(tk.TOP), tk.Fill(tk.FILL_X))
  30. sf.лблУровень = frmBank.TLabel(tk.Txt("Уровень"),
  31. tk.Border(1),
  32. tk.Relief(tk.GROOVE),
  33. )
  34. tk.Pack(sf.лблУровень, tk.Side(tk.TOP), tk.Fill(tk.FILL_X))
  35. sf.лблРабота = frmBank.TLabel(tk.Txt("Работа"),
  36. tk.Border(1),
  37. tk.Relief(tk.GROOVE),
  38. )
  39. tk.Pack(sf.лблРабота, tk.Side(tk.TOP), tk.Fill(tk.FILL_X))
  40. sf.лблВремяОстат = frmBank.TLabel(tk.Txt("Время"),
  41. tk.Border(1),
  42. tk.Relief(tk.GROOVE),
  43. )
  44. tk.Pack(sf.лблВремяОстат, tk.Side(tk.TOP), tk.Fill(tk.FILL_X))
  45. sf.update()
  46. return sf
  47. }
  48. func (sf *FrmBank) update() {
  49. select {
  50. case <-sf.ctx.Ctx().Done():
  51. return
  52. default:
  53. farm := sf.ctx.Get("ботоФерма").Val().(ИБотоФерма)
  54. lstBot := farm.ListBot()
  55. if len(lstBot) > 0 {
  56. bot := lstBot[0]
  57. ботСеть := bot.КонтБот()
  58. bank := ботСеть.Get("банк").Val().(ИАренаБанк)
  59. { // Стата танка
  60. стрУровень := bank.Уровень().ЗначСтр()
  61. sf.лблУровень.Configure(tk.Txt("Уровень: " + стрУровень))
  62. стрРабота := bank.ПродуктСейчас().ЗначСтр()
  63. sf.лблРабота.Configure(tk.Txt("Работа: " + стрРабота))
  64. стрВремяОстат := bank.ВремяОстат().String()
  65. sf.лблВремяОстат.Configure(tk.Txt("Работа: " + стрВремяОстат))
  66. }
  67. }
  68. }
  69. tk.TclAfter(time.Millisecond*250, sf.update)
  70. }