ServerListView.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using ET;
  2. using FairyGUI;
  3. using UI.Login;
  4. namespace GFGGame
  5. {
  6. public class ServerListView : BaseWindow
  7. {
  8. private UI_ServerListUI _ui;
  9. private ServerInfosComponent serverInfosComponent;
  10. public override void Dispose()
  11. {
  12. base.Dispose();
  13. }
  14. protected override void OnInit()
  15. {
  16. base.OnInit();
  17. _ui = UI_ServerListUI.Create();
  18. this.viewCom = _ui.target;
  19. this.viewCom.Center();
  20. this.modal = true;
  21. _ui.m_list.itemRenderer = ListItemRender;
  22. _ui.m_list.onClickItem.Add(OnListItemClick);
  23. _ui.m_list.SetVirtual();
  24. }
  25. protected override void OnShown()
  26. {
  27. base.OnShown();
  28. serverInfosComponent = GameGlobal.zoneScene.GetComponent<ServerInfosComponent>();
  29. if (serverInfosComponent.ServerInfoList.Count <= 0)
  30. {
  31. _ui.m_btnCurServer.target.visible = false;
  32. return;
  33. }
  34. ServerInfo recentlyServerInfo = serverInfosComponent.recentlyServerInfo;
  35. _ui.m_btnCurServer.m_txtTitle.text = string.Format("{0}区 {1}", NumberUtil.GetChiniseNumberText((int)recentlyServerInfo.Id), recentlyServerInfo.ServerName);
  36. _ui.m_list.numItems = serverInfosComponent.ServerInfoList.Count;
  37. }
  38. protected override void OnHide()
  39. {
  40. base.OnHide();
  41. }
  42. private void ListItemRender(int index, GObject obj)
  43. {
  44. UI_Button2 item = UI_Button2.Proxy(obj);
  45. item.m_txtTitle.text = string.Format("{0}区 {1}", NumberUtil.GetChiniseNumberText((int)serverInfosComponent.ServerInfoList[index].Id), serverInfosComponent.ServerInfoList[index].ServerName);
  46. item.target.data = index;
  47. }
  48. private void OnListItemClick(EventContext context)
  49. {
  50. GObject item = context.sender as GObject;
  51. int index = (int)item.data;
  52. serverInfosComponent.CurrentServerId = (int)serverInfosComponent.ServerInfoList[index].Id;
  53. EventAgent.DispatchEvent(ConstMessage.SERVER_CHANGE, index);
  54. }
  55. }
  56. }