SwallowCoreItem = SwallowCoreItem or BaseClass(BaseItem) local SwallowCoreItem = SwallowCoreItem function SwallowCoreItem:__init() self.base_file = "bag" self.layout_file = "SwallowCoreItem" self.model = BagModel:getInstance() self:Load() end function SwallowCoreItem:Load_callback() self.nodes = { "icon:img","lv:txt","click:obj","lock:obj","arrow:obj:img","select:obj", } self:GetChildren(self.nodes) self:AddEvents() if self.need_refreshData then self:UpdateView() end if self.need_reSelected then self:SetSelected(self.is_selected) end end function SwallowCoreItem:AddEvents( ) local on_click = function ( click_obj ) if self.click_obj == click_obj then self.model.now_select_core_item_id = self.item_id self.model:Fire(BagModel.CLICK_SWALLOW_CORE_ITEM,self.item_id) end end AddClickEvent(self.click_obj, on_click) local function on_click_swallow_core_item(item_id) self:SetSelected(self.item_id == item_id) end self:BindEvent(self.model,BagModel.CLICK_SWALLOW_CORE_ITEM,on_click_swallow_core_item) end function SwallowCoreItem:UpdateView( ) lua_resM:setImageSprite(self, self.icon_img, "bagSwallow_asset", "bag_swallow_core_"..self.item_id) -- self.name_txt.text = Trim(self.data.name) self.lv_txt.text = Trim(self.data.name) self.lock_obj:SetActive(self.model.swallow_lv < self.data.lv) self:SetGray(self.model.swallow_lv < self.data.lv) self.arrow_obj:SetActive(false) end function SwallowCoreItem:SetData(data,item_id,max_id) self.data = data self.item_id = item_id self.max_id = max_id if self.is_loaded then self.need_refreshData = false self:UpdateView() else self.need_refreshData = true end end function SwallowCoreItem:SetSelected(bool) self.is_selected = bool if self.is_loaded then self.need_reSelected = false self.select_obj:SetActive(bool) else self.need_reSelected = true end end function SwallowCoreItem:SetGray(bool) SetImageGray(self.icon_img,bool) SetImageGray(self.arrow_img,bool) end function SwallowCoreItem:__delete( ) end