using UI.Mail; using FairyGUI; using UI.CommonGame; namespace GFGGame { public class MailContentView : BaseWindow { private UI_MailContentUI _ui; private int _index; public override void Dispose() { base.Dispose(); } protected override void OnInit() { base.OnInit(); _ui = UI_MailContentUI.Create(); this.viewCom = _ui.target; this.viewCom.Center(); this.modal = true; viewAnimationType = EnumViewAnimationType.ZOOM_CENTER; _ui.m_listReward.itemRenderer = RenderListRewardItem; // _ui.m_listReward.onClickItem.Add(OnClickListRewardItem); _ui.m_btnGet.onClick.Add(OnClickBtnGet); _ui.m_btnDelete.onClick.Add(OnClickBtnDelete); } protected override void OnShown() { base.OnShown(); EventAgent.AddEventListener(ConstMessage.MAIL_CHANGE, UpdateNormal); _index = (int)this.viewData; MailDataManager.Instance.ChangeMailReadState(_index); MailData data = MailDataManager.Instance.mailListData[_index]; _ui.m_c1.selectedIndex = data.rewards.Count == 0 ? 0 : 1; _ui.m_txtTitle.text = data.title; _ui.m_ComContent.target.scrollPane.ScrollTop(); _ui.m_ComContent.m_txtTo.text = data.toName; _ui.m_ComContent.m_txtFrom.text = data.fromName; _ui.m_ComContent.m_txtContent.text = data.content; UpdateNormal(); } private void UpdateNormal() { MailData data = MailDataManager.Instance.mailListData[_index]; _ui.m_btnGet.visible = data.rewards.Count > 0 && data.isGet == 0 ? true : false; _ui.m_btnDelete.visible = _ui.m_btnGet.visible == true ? false : true; _ui.m_listReward.numItems = data.rewards.Count; } private void RenderListRewardItem(int index, GObject obj) { MailData data = MailDataManager.Instance.mailListData[_index]; ItemData reward = data.rewards[index]; if (obj.data == null) { obj.data = new ItemView(obj as GComponent); } (obj.data as ItemView).SetData(reward); (obj.data as ItemView).ImgGotVisible = data.isGet == 1 ? true : false; } private void OnClickBtnGet() { MailDataManager.Instance.GetRewards(_index); } private void OnClickBtnDelete() { MailDataManager.Instance.DeleteMail(_index); this.Hide(); } protected override void OnHide() { base.OnHide(); EventAgent.RemoveEventListener(ConstMessage.MAIL_CHANGE, UpdateNormal); } } }