using System.Collections; using System.Collections.Generic; using UnityEngine; using UI.Mail; using FairyGUI; namespace GFGGame { public class MailView : BaseWindow { private UI_MailUI _ui; private MailDataManager mailDataMgr; private const int _maxMailCount = 300; public override void Dispose() { base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_MailUI.PACKAGE_NAME; _ui = UI_MailUI.Create(); this.viewCom = _ui.target; this.viewCom.Center(); this.modal = true; viewAnimationType = EnumViewAnimationType.ZOOM_CENTER; _ui.m_list.itemRenderer = RenderListItem; _ui.m_list.SetVirtual(); _ui.m_btnGet.onClick.Add(OnClickBtnGet); _ui.m_btnDelete.onClick.Add(OnClickBtnDelete); MailDataManager.Instance.GMSetList(20); mailDataMgr = MailDataManager.Instance; } protected override void OnShown() { base.OnShown(); EventAgent.AddEventListener(ConstMessage.MAIL_CHANGE, UpdateNormal); UpdateNormal(); } private void UpdateNormal() { int count = mailDataMgr.mailListData.Count; _ui.m_list.numItems = count; _ui.m_txtTips.visible = count == 0 ? true : false; _ui.m_txtCount.text = string.Format("当前邮件:{0}/{1}", StringUtil.GetColorText(count.ToString(), count >= _maxMailCount ? "#B19977" : "#E27D78"), _maxMailCount); _ui.m_txtMaxCount.text = string.Format("最高可储存{0}封邮箱,请及时查看", _maxMailCount); } private void RenderListItem(int index, GObject obj) { UI_ListItem item = UI_ListItem.Proxy(obj); MailData data = mailDataMgr.mailListData[index]; item.m_c1.selectedIndex = mailDataMgr.GetMailState(data); item.m_txtDiscribe.text = string.Format("{0}...", data.content.Length > 10 ? data.content.Substring(0, 10) : data.content); item.m_txtTime.text = string.Format("剩余时间:{0}天", data.remainingTime); item.m_btnLook.onClick.Clear(); item.m_btnLook.onClick.Add(OnClickBtnLook); item.m_btnLook.data = index; } private void OnClickBtnLook(EventContext context) { GButton btn = context.sender as GButton; int data = (int)btn.data; ViewManager.Show(data); } private void OnClickBtnGet() { mailDataMgr.GetAllRewards(); _ui.m_list.scrollPane.ScrollTop(); } private void OnClickBtnDelete() { Alert.Show("是否删除所有已读文件?").SetLeftButton(true).SetRightButton(true, "确认", (object data) => { mailDataMgr.DeleteAllMail(); _ui.m_list.scrollPane.ScrollTop(); }); } protected override void OnHide() { base.OnHide(); EventAgent.RemoveEventListener(ConstMessage.MAIL_CHANGE, UpdateNormal); } } }