local EquipListUI = class("EquipListUI", BaseUI)

local EQUIP_LIST_CELL = "app/ui/equip/cell/equip_list_cell"

function EquipListUI:isFullScreen()
	return false
end

function EquipListUI:getPrefabPath()
	return "assets/prefabs/ui/equip/equip_list_ui.prefab"
end

function EquipListUI:onPressBackspace()
	self:closeUI()
end

function EquipListUI:ctor(parmas)
	self.heroEntity = parmas.heroEntity
	self.equipPart = parmas.part
	self.slotId = self.heroEntity:getMatchType()
end

function EquipListUI:onLoadRootComplete()
	local uiMap = self.root:genAllChildren()

	uiMap["equip_list_ui.bg.close_btn"]:addClickListener(function()
		self:closeUI()
	end)

	self.equipCell = uiMap["equip_list_ui.bg.equip_cell"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.EQUIP_CELL)

	self.titleTx = uiMap["equip_list_ui.bg.title_tx"]
	self.scrollrect = uiMap["equip_list_ui.bg.scrollrect"]
	self.scrollRectComp = uiMap["equip_list_ui.bg.scrollrect"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
    self.scrollRectComp:addInitCallback(function()
		return EQUIP_LIST_CELL
	end)
	self.scrollRectComp:addRefreshCallback(function(index, cell)
		cell:refresh(self.equipList[index], self.slotId, self.equipPart)
	end)
    self.scrollRectComp:clearCells()

	self:bind(DataManager.HeroData, "isDirty", function()
		self:closeUI()
	end)
end

function EquipListUI:onRefresh()
	self:initList()
	self:refreshEquipCell()
	self:refreshScrollrect()

	self.titleTx:setText(I18N:getGlobalText(I18N.GlobalConst.EQUIP_HERO_DESC_15))
end

function EquipListUI:refreshEquipCell()
	local eid = DataManager.EquipData:getPartEquipUid(self.slotId, self.equipPart)
	if eid and eid > 0 then
		local equipEntity = DataManager.EquipData:getEquipByUid(eid)
		self.equipCell:refresh(equipEntity, self.equipPart)
	else
		self.equipCell:refreshEmpty(self.equipPart)
	end
end

function EquipListUI:initList()
	self.equipList = DataManager.EquipData:getAllEquipsSort(self.equipPart, nil, nil, self.heroEntity:getCfgId())
end

function EquipListUI:refreshScrollrect()
	self.scrollRectComp:refillCells(#self.equipList)
end

return EquipListUI