using UI.CommonGame; using FairyGUI; using System.Collections.Generic; namespace GFGGame { public class SuitPartsDetailView : BaseWindow { private UI_SuitPartsDetailUI _ui; private int[] _items; private List itemViews = new List(); public override void Dispose() { base.Dispose(); _items = null; } protected override void OnInit() { base.OnInit(); packageName = UI_SuitPartsDetailUI.PACKAGE_NAME; _ui = UI_SuitPartsDetailUI.Create(); this.viewCom = _ui.target; this.modal = true; this.viewCom.Center(); _ui.m_listParts.itemRenderer = ListPartsItemRenderer; _ui.m_listParts.onClickItem.Add(OnClickListPartsItem); } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.JUMP_TO_SOURCE, this.Hide); } protected override void OnShown() { base.OnShown(); itemViews.Clear(); int suitId = (int)this.viewData; _items = SuitCfgManager.Instance.GetSuitItems(suitId); _ui.m_listParts.numItems = _items.Length; if (_ui.m_listParts.numItems > 0) { _ui.m_listParts.ScrollToView(0); } // _ui.m_listParts.ResizeToFit(); _ui.target.Center(); } protected override void OnHide() { base.OnHide(); } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.RemoveEventListener(ConstMessage.JUMP_TO_SOURCE, this.Hide); } private void ListPartsItemRenderer(int index, GObject obj) { int itemId = _items[index]; obj.data = itemId; ItemData reward = ItemUtil.createItemData(itemId, 1); if (itemViews.Count <= index) { // obj.data = ItemView itemView = new ItemView(obj as GComponent); itemViews.Add(itemView); } itemViews[index].SetData(reward); itemViews[index].TxtHasCountVisble = false; bool haveItem = DressUpMenuItemDataManager.CheckHasItem(itemId); itemViews[index].ImgNotGotVisible = !haveItem; itemViews[index].ShowTips = false; } private void OnClickListPartsItem(EventContext context) { GComponent item = context.data as GComponent; int itemId = (int)item.data; bool haveItem = DressUpMenuItemDataManager.CheckHasItem(itemId); ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemId); if (haveItem || itemCfg.approach.Length <= 0) { GoodsItemTipsController.ShowItemTips(itemId); } else { // this.Hide(); object[] goBackDatas = ViewManager.GetGoBackDatas(typeof(SuitPartsDetailView).Name); ViewManager.Show(ViewName.APPROACH_OF_ITEM_VIEW, new object[] { itemId, new object[] { ViewName.SUIT_GUIDE_VIEW, this.viewData } }); } } } }