public void Show(int idx, List <EquipExchangeViewData> list, bool isShowTab = true)
    {
        gameObject.SetActive(true);
        if (isShowTab)
        {
            m_tab.gameObject.SetActive(true);

            //切换到indexTab
            m_tab.SetCurrentDownButton(idx);
        }
        else
        {
            m_tab.gameObject.SetActive(false);
        }

        m_listView.AddList(null,
                           list.Count,
                           (index, go) =>
        {
            EquipExchangeViewData viewData = list[index];
            RefreshGrid(go, viewData);

            //m_objList.Add(go);
        });
    }
    private List <List <EquipExchangeViewData> > GetViewData(int level)
    {
        List <List <EquipExchangeViewData> > dataList = new List <List <EquipExchangeViewData> >();

        dataList.Add(new List <EquipExchangeViewData>());
        dataList.Add(new List <EquipExchangeViewData>());
        Debug.Log("item.level:" + level);
        HashSet <int> dataSet = ItemExchangeData.DataDic[level];

        foreach (int i in dataSet)
        {
            ItemExchangeData exchangeData = ItemExchangeData.dataMap.Get(i);
            Debug.Log("exchangeData.GetRewardByVocation(MogoWorld.thePlayer.vocation):" + exchangeData.GetRewardByVocation(MogoWorld.thePlayer.vocation));
            ItemParentData        itemReward = ItemParentData.GetItem(exchangeData.GetRewardByVocation(MogoWorld.thePlayer.vocation));
            EquipExchangeViewData viewData   = new EquipExchangeViewData()
            {
                goldNum     = "x" + exchangeData.GoldNum,
                title       = itemReward.Name,
                itemId      = itemReward.id,
                materialNum = "x" + exchangeData.MeterailNum,
                materialId  = exchangeData.MeterialId,
                onExchange  = () => { OnExchange(exchangeData.id); }
            };
            if (exchangeData.GoldNum <= 0)
            {
                viewData.goldNum = string.Empty;
            }
            if (exchangeData.GoldNum > MogoWorld.thePlayer.gold)
            {
                viewData.goldNum = MogoUtils.GetRedString(viewData.goldNum);
            }
            if (exchangeData.MeterailNum > InventoryManager.Instance.GetItemNumById(exchangeData.MeterialId))
            {
                viewData.materialNum = MogoUtils.GetRedString(viewData.materialNum);
            }
            if (exchangeData.subtype < 3)
            {
                dataList[exchangeData.subtype - 1].Add(viewData);
                m_materilaIdDic[exchangeData.subtype - 1] = exchangeData.MeterialId;
            }
            else
            {
                dataList[0].Add(viewData);
                m_materilaIdDic[0] = exchangeData.MeterialId;
            }
        }
        return(dataList);
    }
    private void RefreshGrid(GameObject go, EquipExchangeViewData viewData)
    {
        go.transform.Find("EquipExchangeEquipGridBtn").gameObject.AddComponent <MogoUIListener>().MogoOnClick = viewData.onExchange;

        Transform tUp = go.transform.Find("EquipExchangeEquipGridThings1");
        UISprite  fg  = tUp.Find("EquipExchangeEquipGridEquipFG").GetComponent <UISprite>();
        UISprite  bg  = tUp.Find("EquipExchangeEquipGridEquipBG").GetComponent <UISprite>();

        InventoryManager.SetIcon(viewData.itemId, fg, 0, null, bg);
        tUp.Find("EquipExchangeEquipGridEquipName").GetComponent <UILabel>().text = viewData.title;
        tUp.Find("EquipExchangeEquipGridEquipFGFG").GetComponent <MyDragCamera>().RelatedCamera = m_tranDragableCamera.GetComponent <Camera>();

        //显示tip
        tUp.Find("EquipExchangeEquipGridEquipFGFG").gameObject.AddComponent <MogoUIListener>().MogoOnClick = () =>
        {
            InventoryManager.Instance.ShowItemTip(viewData.itemId, true);
        };

        Transform tDown = go.transform.Find("EquipExchangeEquipGridThings2");

        //Debug.LogError(viewData.materialId);
        InventoryManager.SetIcon(viewData.materialId, tDown.Find("EquipExchangeEquipGridDiamondRoot").Find("EquipExchangeEquipGridDiamond").GetComponent <UISprite>(), 0, null, null);
        //t2.FindChild("EquipExchangeEquipGridDiamond").GetComponent<UISprite>().spriteName = viewData.materilaIcon;

        tDown.Find("EquipExchangeEquipGridDiamondRoot").Find("EquipExchangeEquipGridDiamondNum").GetComponent <UILabel>().text = viewData.materialNum;

        if (viewData.goldNum.Equals(string.Empty))
        {
            tDown.Find("EquipExchangeEquipGridGoldRoot").gameObject.SetActive(false);
        }
        else
        {
            tDown.Find("EquipExchangeEquipGridGoldRoot").Find("EquipExchangeEquipGridGoldNum").GetComponent <UILabel>().text = viewData.goldNum;
        }

        if (viewData.goldIconId != 0)
        {
            InventoryManager.SetIcon(viewData.goldIconId, tDown.Find("EquipExchangeEquipGridGoldRoot").Find("EquipExchangeEquipGridImage").GetComponent <UISprite>());
        }
    }
 private List<List<EquipExchangeViewData>> GetViewData(int level)
 {
     List<List<EquipExchangeViewData>> dataList = new List<List<EquipExchangeViewData>>();
     dataList.Add(new List<EquipExchangeViewData>());
     dataList.Add(new List<EquipExchangeViewData>());
     Mogo.Util.LoggerHelper.Debug("item.level:" + level);
     HashSet<int> dataSet = ItemExchangeData.DataDic[level];
     foreach (int i in dataSet)
     {
         ItemExchangeData exchangeData = ItemExchangeData.dataMap.Get(i);
         Mogo.Util.LoggerHelper.Debug("exchangeData.GetRewardByVocation(MogoWorld.thePlayer.vocation):" + exchangeData.GetRewardByVocation(MogoWorld.thePlayer.vocation));
         ItemParentData itemReward = ItemParentData.GetItem(exchangeData.GetRewardByVocation(MogoWorld.thePlayer.vocation));
         EquipExchangeViewData viewData = new EquipExchangeViewData()
         {
             goldNum = "x" + exchangeData.GoldNum,
             title = itemReward.Name,
             itemId = itemReward.id,
             materialNum = "x" + exchangeData.MeterailNum,
             materialId = exchangeData.MeterialId,
             onExchange = () => { OnExchange(exchangeData.id); }
         };
         if (exchangeData.GoldNum <= 0) viewData.goldNum = string.Empty;
         if (exchangeData.GoldNum > MogoWorld.thePlayer.gold)
             viewData.goldNum = MogoUtils.GetRedString(viewData.goldNum);
         if (exchangeData.MeterailNum > InventoryManager.Instance.GetItemNumById(exchangeData.MeterialId))
             viewData.materialNum = MogoUtils.GetRedString(viewData.materialNum);
         if (exchangeData.subtype < 3)
         {
             dataList[exchangeData.subtype - 1].Add(viewData);
             m_materilaIdDic[exchangeData.subtype - 1] = exchangeData.MeterialId;
         }
         else
         {
             dataList[0].Add(viewData);
             m_materilaIdDic[0] = exchangeData.MeterialId;
         }
     }
     return dataList;
 }
    private void RefreshGrid(GameObject go, EquipExchangeViewData viewData)
    {
        go.transform.FindChild("EquipExchangeEquipGridBtn").gameObject.AddComponent<MogoUIListener>().MogoOnClick = viewData.onExchange;

        Transform tUp = go.transform.FindChild("EquipExchangeEquipGridThings1");
        UISprite fg = tUp.FindChild("EquipExchangeEquipGridEquipFG").GetComponent<UISprite>();
        UISprite bg = tUp.FindChild("EquipExchangeEquipGridEquipBG").GetComponent<UISprite>();
        InventoryManager.SetIcon(viewData.itemId, fg, 0, null, bg);
        tUp.FindChild("EquipExchangeEquipGridEquipName").GetComponent<UILabel>().text = viewData.title;
        tUp.FindChild("EquipExchangeEquipGridEquipFGFG").GetComponent<MyDragCamera>().RelatedCamera = m_tranDragableCamera.GetComponent<Camera>();

        //显示tip
        tUp.FindChild("EquipExchangeEquipGridEquipFGFG").gameObject.AddComponent<MogoUIListener>().MogoOnClick = () =>
        {
            InventoryManager.Instance.ShowItemTip(viewData.itemId,true);
        };

        Transform tDown = go.transform.FindChild("EquipExchangeEquipGridThings2");
        //Debug.LogError(viewData.materialId);
        InventoryManager.SetIcon(viewData.materialId, tDown.FindChild("EquipExchangeEquipGridDiamondRoot").FindChild("EquipExchangeEquipGridDiamond").GetComponent<UISprite>(), 0, null, null);
        //t2.FindChild("EquipExchangeEquipGridDiamond").GetComponent<UISprite>().spriteName = viewData.materilaIcon;

        tDown.FindChild("EquipExchangeEquipGridDiamondRoot").FindChild("EquipExchangeEquipGridDiamondNum").GetComponent<UILabel>().text = viewData.materialNum;

        if (viewData.goldNum.Equals(string.Empty))
        {
            tDown.FindChild("EquipExchangeEquipGridGoldRoot").gameObject.SetActive(false);
        }
        else
        {
            tDown.FindChild("EquipExchangeEquipGridGoldRoot").FindChild("EquipExchangeEquipGridGoldNum").GetComponent<UILabel>().text = viewData.goldNum;
        }

        if (viewData.goldIconId != 0)
        {
            InventoryManager.SetIcon(viewData.goldIconId, tDown.FindChild("EquipExchangeEquipGridGoldRoot").FindChild("EquipExchangeEquipGridImage").GetComponent<UISprite>());

        }
    }
    private List<EquipExchangeViewData> GetActivateViewDataList(ItemParentData item)
    {
        List<EquipExchangeViewData> viewDataList = new List<EquipExchangeViewData>();
        ItemSuitEquipmentsData suitData = ItemSuitEquipmentsData.dataMap.Get(item.effectId);

        List<int> equipIdList = suitData.GetEquipList((int)MogoWorld.thePlayer.vocation);

        //if (equipIdList == null) Debug.LogError("f**k!");

        for (int i = 0; i < equipIdList.Count; i++)
        {
            EquipExchangeViewData data = new EquipExchangeViewData();
            data.itemId = equipIdList[i];
            data.goldNum = "x1";
            data.materialId = item.id;
            data.materialNum = "x1";
            if (GetItemNumById(item.id) <= 0)
            {
                data.materialNum = MogoUtils.GetRedString(data.materialNum);
            }
            if (GetItemNumById(equipIdList[i], true, true) <= 0)
            {
                data.goldNum = MogoUtils.GetRedString(data.goldNum);
            }

            data.title = ItemParentData.GetItem(equipIdList[i]).Name;
            var index = i;
            data.goldIconId = equipIdList[i];
            data.onExchange = () =>
            {
                MogoWorld.thePlayer.RpcCall("ActivedSuitEquipmentReq", equipIdList[index]);
            };

            viewDataList.Add(data);
        }
        return viewDataList;
    }