LogView.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. 
  2. using UI.Common;
  3. using FairyGUI;
  4. using System.Collections.Generic;
  5. using UnityEngine;
  6. using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
  7. namespace GFGGame
  8. {
  9. public class LogView : BaseWindow
  10. {
  11. private UI_LogUI _ui;
  12. public override void Dispose()
  13. {
  14. UI_ListLogItem.ClearProxy();
  15. base.Dispose();
  16. }
  17. protected override void OnInit()
  18. {
  19. base.OnInit();
  20. _ui = UI_LogUI.Create();
  21. this.viewCom = _ui.target;
  22. this.viewCom.Center();
  23. this.modal = true;
  24. _ui.m_listLog.itemRenderer = RenderListLogItem;
  25. _ui.m_listLog.onClickItem.Add(OnClickItem);
  26. _ui.m_c1.onChanged.Add(this.OnChangeC1);
  27. _ui.m_btnClear.onClick.Add(this.OnClickBtnClear);
  28. _ui.m_btnClose.onClick.Add(this.Hide);
  29. }
  30. protected override void OnShown()
  31. {
  32. base.OnShown();
  33. _ui.m_c1.selectedIndex = 2;
  34. }
  35. private void RenderListLogItem(int index, GObject obj)
  36. {
  37. UI_ListLogItem item = UI_ListLogItem.Proxy(obj);
  38. string[] msg = (_ui.m_listLog.data as List<string>)[index].Split('@');
  39. item.m_txtLog.text = StringUtil.GetColorText(msg[1], msg[0] == "error" ? "#FF0000" : "#8F6129");
  40. item.target.height = item.m_txtLog.height;
  41. UI_ListLogItem.ProxyEnd();
  42. }
  43. private void OnChangeC1()
  44. {
  45. _ui.m_listLog.data = this.GetMsgList(_ui.m_c1.selectedIndex);
  46. _ui.m_listLog.numItems = (_ui.m_listLog.data as List<string>).Count;
  47. if (_ui.m_listLog.numItems > 0) _ui.m_listLog.ScrollToView(_ui.m_listLog.numItems - 1);
  48. }
  49. private List<string> GetMsgList(int index)
  50. {
  51. List<string> list = new List<string>();
  52. if (index == 0 && LogController.Instance.msgDic.ContainsKey(LogController._all) == true)
  53. {
  54. list = LogController.Instance.msgDic[LogController._all];
  55. }
  56. else if (index == 1 && LogController.Instance.msgDic.ContainsKey(LogController._log) == true)
  57. {
  58. list = LogController.Instance.msgDic[LogController._log];
  59. }
  60. else if (index == 2 && LogController.Instance.msgDic.ContainsKey(LogController._error) == true)
  61. {
  62. list = LogController.Instance.msgDic[LogController._error];
  63. }
  64. return list;
  65. }
  66. private void OnClickBtnClear()
  67. {
  68. int index = _ui.m_c1.selectedIndex;
  69. if (index == 0 && LogController.Instance.msgDic.ContainsKey(LogController._all) == true)
  70. {
  71. LogController.Instance.msgDic[LogController._all].Clear();
  72. }
  73. else if (index == 1 && LogController.Instance.msgDic.ContainsKey(LogController._log) == true)
  74. {
  75. LogController.Instance.msgDic[LogController._log].Clear();
  76. }
  77. else if (index == 2 && LogController.Instance.msgDic.ContainsKey(LogController._error) == true)
  78. {
  79. LogController.Instance.msgDic[LogController._error].Clear();
  80. }
  81. this.OnChangeC1();
  82. }
  83. private void OnClickItem(EventContext context)
  84. {
  85. UI_ListLogItem item = UI_ListLogItem.Proxy(context.data as GObject);
  86. GUIUtility.systemCopyBuffer = item.m_txtLog.text;
  87. }
  88. protected override void OnHide()
  89. {
  90. base.OnHide();
  91. _ui.m_c1.selectedIndex = -1;
  92. }
  93. }
  94. }