79 lines
No EOL
3.1 KiB
Lua
79 lines
No EOL
3.1 KiB
Lua
XUiPanelMedalListView = XClass(nil, "XUiPanelMedalListView")
|
|
local XUiGridNameplate = require("XUi/XUiNameplate/XUiGridNameplate")
|
|
function XUiPanelMedalListView:Ctor(ui, type, base)
|
|
self.GameObject = ui.gameObject
|
|
self.Transform = ui.transform
|
|
self.Type = type
|
|
self.Base = base
|
|
XTool.InitUiObject(self)
|
|
|
|
self:AddListener()
|
|
self:InitDynamicTable()
|
|
end
|
|
|
|
function XUiPanelMedalListView:Refresh(screenType)
|
|
self:SetupDynamicTable(screenType)
|
|
end
|
|
|
|
|
|
function XUiPanelMedalListView:AddListener()
|
|
if self.Type == XMedalConfigs.ViewType.Collection then
|
|
self.BtnEnterCollectionWall.CallBack = function()
|
|
self:OnBtnEnterCollectionWallClick()
|
|
end
|
|
end
|
|
end
|
|
|
|
function XUiPanelMedalListView:OnBtnEnterCollectionWallClick()
|
|
XLuaUiManager.Open("UiCollectionWall")
|
|
end
|
|
|
|
|
|
function XUiPanelMedalListView:InitDynamicTable()
|
|
if self.Type == XMedalConfigs.ViewType.Medal then
|
|
self.DynamicTable = XDynamicTableNormal.New(self.PanelMedalScroll)
|
|
self.DynamicTable:SetProxy(XUiGridMedal)
|
|
self.GridMedal.gameObject:SetActiveEx(false)
|
|
elseif self.Type == XMedalConfigs.ViewType.Collection then
|
|
self.DynamicTable = XDynamicTableNormal.New(self.PanelCollectionScroll)
|
|
self.DynamicTable:SetProxy(XUiGridCollection)
|
|
self.GridCollection.gameObject:SetActiveEx(false)
|
|
elseif self.Type == XMedalConfigs.ViewType.Nameplate then
|
|
self.DynamicTable = XDynamicTableNormal.New(self.PanelNameplateScroll)
|
|
self.DynamicTable:SetProxy(XUiGridNameplate)
|
|
self.GridNameplate.gameObject:SetActiveEx(false)
|
|
end
|
|
|
|
self.DynamicTable:SetDelegate(self)
|
|
end
|
|
|
|
function XUiPanelMedalListView:SetupDynamicTable(screenType)
|
|
if self.Type == XMedalConfigs.ViewType.Medal then
|
|
self.PageDatas = XDataCenter.MedalManager.GetMedals()
|
|
self.Base.EmptyText.text = CS.XTextManager.GetText("NotHaveMedal")
|
|
elseif self.Type == XMedalConfigs.ViewType.Collection then
|
|
self.PageDatas = XDataCenter.MedalManager.GetScoreTitleByScreenType(screenType)
|
|
self.Base.EmptyText.text = CS.XTextManager.GetText("NotHaveCollection")
|
|
elseif self.Type == XMedalConfigs.ViewType.Nameplate then
|
|
self.PageDatas = XDataCenter.MedalManager.GetNameplateGroupList()
|
|
self.Base.EmptyText.text = CS.XTextManager.GetText("NotHaveNameplate")
|
|
else
|
|
return
|
|
end
|
|
|
|
self.DynamicTable:SetDataSource(self.PageDatas)
|
|
self.DynamicTable:ReloadDataSync(1)
|
|
self.Base.PanelNone.gameObject:SetActiveEx(not next(self.PageDatas))
|
|
end
|
|
|
|
function XUiPanelMedalListView:OnDynamicTableEvent(event, index, grid)
|
|
if event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_ATINDEX then
|
|
if self.Type == XMedalConfigs.ViewType.Medal then
|
|
grid:UpdateGrid(self.PageDatas[index], self)
|
|
elseif self.Type == XMedalConfigs.ViewType.Collection then
|
|
grid:UpdateGrid(self.PageDatas[index], self, XDataCenter.MedalManager.InType.Normal)
|
|
elseif self.Type == XMedalConfigs.ViewType.Nameplate then
|
|
grid:UpdateData(self.PageDatas[index], true, true)
|
|
end
|
|
end
|
|
end |