UIHundredDojoSloganView.lua 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. local UIHundredDojoSloganView = require("UIHundredDojo/UIHundredDojoSloganView_Generate")
  2. function UIHundredDojoSloganView:OnAwake(data)
  3. self.controller = require("UIHundredDojo/UIHundredDojoSloganCtr"):new()
  4. self.controller:Init(self)
  5. self.controller:SetData(data)
  6. end
  7. function UIHundredDojoSloganView:AddEventListener()
  8. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.HUNDRED_DOJO_SLOGAN_CHANGED, self, self.OnSloganChanged)
  9. end
  10. function UIHundredDojoSloganView:FillContent(data, uiBase)
  11. self.uiBase = uiBase
  12. local gameObject = self.uiBase:GetRoot()
  13. if gameObject ~= nil then
  14. self.gameObject = gameObject
  15. self.transform = gameObject.transform
  16. end
  17. self:InitGenerate(self.transform, data)
  18. self:Init()
  19. end
  20. function UIHundredDojoSloganView:Init()
  21. self.controller:InitData()
  22. local changeSlogan = self.controller:GetChangeSlogan()
  23. self.inputField.inputField.text = changeSlogan
  24. self:OnValueChangedInput(changeSlogan)
  25. end
  26. function UIHundredDojoSloganView:RemoveEventListener()
  27. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  28. self.inputField.inputField.onValidateInput = nil
  29. self.inputField.inputField.onValueChanged:RemoveAllListeners()
  30. self.inputField.inputField.onEndEdit:RemoveAllListeners()
  31. end
  32. function UIHundredDojoSloganView:AddUIEventListener()
  33. self.uiBase:AddButtonUniqueEventListener(self.AnyBtn.button, self, self.OnClickCloseBtn)
  34. self.uiBase:AddButtonUniqueEventListener(self.btnClose.button, self, self.OnClickCloseBtn)
  35. self.uiBase:AddButtonUniqueEventListener(self.btnConfirm.button, self, self.OnClickConfirmBtn)
  36. self.inputField.inputField.onValidateInput = self.inputField.inputField.OnValidateInput(self.OnValidateInput, self)
  37. self.inputField.inputField.onValueChanged:RemoveAllListeners()
  38. self.inputField.inputField.onValueChanged:AddListener(function(text)
  39. self:OnValueChangedInput(text)
  40. end)
  41. self.inputField.inputField.onEndEdit:RemoveAllListeners()
  42. self.inputField.inputField.onEndEdit:AddListener(function(text)
  43. self:OnEndEditInput(text)
  44. end)
  45. end
  46. function UIHundredDojoSloganView:OnHide()
  47. end
  48. function UIHundredDojoSloganView:OnShow(data)
  49. self.controller:SetData(data)
  50. end
  51. function UIHundredDojoSloganView:OnClose()
  52. end
  53. function UIHundredDojoSloganView:OnDispose()
  54. self.controller:OnDispose()
  55. end
  56. function UIHundredDojoSloganView:OnSloganChanged()
  57. local inputField = self.inputField.inputField
  58. if not inputField.isFocused then
  59. local curSlogan = self.controller:GetCurSlogan()
  60. if inputField.text == curSlogan then
  61. inputField.text = curSlogan
  62. end
  63. end
  64. end
  65. function UIHundredDojoSloganView:OnClickCloseBtn()
  66. self:UIClose()
  67. end
  68. function UIHundredDojoSloganView:OnClickConfirmBtn()
  69. local errorCode = self.controller:SendChangeSlogan()
  70. if errorCode ~= 0 and errorCode ~= 1 then
  71. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay(errorCode)
  72. end
  73. self:UIClose()
  74. end
  75. function UIHundredDojoSloganView:OnValidateInput(text, charIndex, addedChar)
  76. local len = GetActualStringLength(text) + 1
  77. local max = self.controller:GetSloganLengthMax()
  78. if len > max then return 0 end
  79. return addedChar
  80. end
  81. function UIHundredDojoSloganView:OnValueChangedInput(text)
  82. local len = GetActualStringLength(text)
  83. local max = self.controller:GetSloganLengthMax()
  84. self.text.text.text = tostring(len) .. '/' .. tostring(max)
  85. end
  86. function UIHundredDojoSloganView:OnEndEditInput(text)
  87. self.controller:SetChangeSlogan(text)
  88. end
  89. return UIHundredDojoSloganView