PGRData/Script/matrix/xui/xuifavorability/XUiPanelFavorabilityMessage.lua

127 lines
4.1 KiB
Lua
Raw Normal View History

XUiPanelFavorabilityMessage = XClass(nil, "XUiPanelFavorabilityMessage")
function XUiPanelFavorabilityMessage:Ctor(ui, uiRoot, parent)
self.GameObject = ui.gameObject
self.Transform = ui.transform
self.UiRoot = uiRoot
self.Parent = parent
self:InitAutoScript()
end
-- auto
-- Automatic generation of code, forbid to edit
function XUiPanelFavorabilityMessage:InitAutoScript()
self:AutoInitUi()
self:AutoAddListener()
end
function XUiPanelFavorabilityMessage:AutoInitUi()
self.PanelDataList = self.Transform:Find("PanelDataList")
self.GridLikeMessageItem = self.Transform:Find("PanelDataList/Viewport/GridLikeMessageItem")
self.ScrollbarVertical = self.Transform:Find("PanelDataList/ScrollbarVertical"):GetComponent("Scrollbar")
end
function XUiPanelFavorabilityMessage:RegisterClickEvent(uiNode, func)
if func == nil then
XLog.Error("XUiPanelFavorabilityMessage:RegisterClickEvent函数参数错误参数func不能为空")
return
end
if type(func) ~= "function" then
XLog.Error("XUiPanelFavorabilityMessage:RegisterClickEvent函数错误, 参数func需要是function类型, func的类型是" .. type(func))
end
local listener = function(...)
func(self, ...)
end
CsXUiHelper.RegisterClickEvent(uiNode, listener)
end
function XUiPanelFavorabilityMessage:AutoAddListener()
end
-- auto
function XUiPanelFavorabilityMessage:OnRefresh()
self:RefreshDatas()
end
function XUiPanelFavorabilityMessage:RefreshDatas()
local characterId = self.UiRoot:GetCurrFavorabilityCharacter()
local informations = XFavorabilityConfigs.GetCharacterInformationById(characterId)
self:UpdateDataList(informations, 1)
self.Parent:CheckDataReddot()
end
function XUiPanelFavorabilityMessage:GetProxyType()
return "XUiGridLikeMessageItem"
end
function XUiPanelFavorabilityMessage:UpdateDataList(dataList, selectIdx)
if not dataList then
XLog.Warning("XUiPanelFavorabilityMessage:UpdateDataList error: dataList is nil")
return
end
self.DataList = dataList
self.CurData = self.DataList[selectIdx]
if not self.DynamicTableData then
self.DynamicTableData = XDynamicTableIrregular.New(self.PanelDataList)
self.DynamicTableData:SetProxy("XUiGridLikeMessageItem", XUiGridLikeMessageItem, self.GridLikeMessageItem.gameObject)
self.DynamicTableData:SetDelegate(self)
end
self.DynamicTableData:SetDataSource(self.DataList)
self.DynamicTableData:ReloadDataASync(selectIdx)
end
-- [监听动态列表事件]
function XUiPanelFavorabilityMessage:OnDynamicTableEvent(event, index, grid)
if event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_INIT then
grid:Init(self.UiRoot)
elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_ATINDEX then
local data = self.DataList[index]
if data ~= nil then
grid:OnRefresh(self.DataList[index], index)
end
elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_TOUCHED then
self.CurData = self.DataList[index]
self:OnDataClick(index, grid)
end
end
-- [策划想要打开一个item,关闭其他打开中的item效果]
function XUiPanelFavorabilityMessage:ResetOtherItems(index)
for k, v in pairs(self.DataList) do
if index ~= k then
v.IsToggle = false
end
end
end
-- [点击资料]
function XUiPanelFavorabilityMessage:OnDataClick(index, grid)
local characterId = self.UiRoot:GetCurrFavorabilityCharacter()
local isUnlock = XDataCenter.FavorabilityManager.IsInformationUnlock(characterId, self.CurData.Id)
local canUnlock = XDataCenter.FavorabilityManager.CanInformationUnlock(characterId, self.CurData.Id)
if isUnlock then
self:ResetOtherItems(index)
grid:OnToggle()
self.DynamicTableData:ReloadDataASync(1)
else
if canUnlock then
XDataCenter.FavorabilityManager.OnUnlockCharacterInfomatin(characterId, self.CurData.Id, function()
self:RefreshDatas()
end, self.CurData.Title)
else
-- 提示解锁条件
XUiManager.TipMsg(self.CurData.ConditionDescript)
end
end
end
return XUiPanelFavorabilityMessage