NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

panelAgents.py (2761B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\info\panels\panelAgents.py
      2 import localization
      3 from carbonui import uiconst
      4 from carbonui.primitives.container import Container
      5 from eve.client.script.ui.control.toggleButtonGroup import ToggleButtonGroup
      6 from eve.client.script.ui.control.eveScroll import Scroll
      7 from eve.client.script.ui.station.agents.agentUtil import AGENTS_IN_CORP_SHOW_INFO
      8 from eve.common.lib import appConst as const
      9 from eve.common.script.sys.rowset import Rowset
     10 
     11 class PanelAgents(Container):
     12     default_name = 'PanelAgents'
     13 
     14     def ApplyAttributes(self, attributes):
     15         super(PanelAgents, self).ApplyAttributes(attributes)
     16         self.ownerID = attributes.ownerID
     17         self.typeID = attributes.typeID
     18         self.selectedLevel = attributes.get('selectedLevel', 1)
     19         self.isInitialized = False
     20 
     21     def Load(self):
     22         if self.isInitialized:
     23             return
     24         self.ConstructPanel()
     25         self.isInitialized = True
     26 
     27     def ConstructPanel(self):
     28         self.Flush()
     29         toggleButtonCont = Container(name='btnGroupCont', parent=self, align=uiconst.TOTOP, height=35)
     30         btnGroup = ToggleButtonGroup(parent=toggleButtonCont, align=uiconst.CENTER, height=toggleButtonCont.height, width=300, padding=(10, 4, 10, 3), callback=self.LoadAgentsOfLevel)
     31         for level in xrange(1, 6):
     32             isDisabled = not self.FilterAgents(self.GetAgentsOfLevel(level))
     33             hint = localization.GetByLabel('UI/Agents/NoAgentAvailableHint', level=level) if isDisabled else localization.GetByLabel('UI/Agents/AgentFilterButtonHint', level=level)
     34             btnGroup.AddButton(btnID=level, label=level, hint=hint, isDisabled=isDisabled)
     35 
     36         self.scroll = Scroll(name='scroll', parent=self, padding=const.defaultPadding)
     37         if self.FilterAgents(self.GetAgentsOfLevel(self.selectedLevel)):
     38             btnGroup.SelectByID(self.selectedLevel)
     39         else:
     40             btnGroup.SelectFirst()
     41 
     42     def LoadAgentsOfLevel(self, level, *args):
     43         scrollList = []
     44         filteredAgents = self.FilterAgents(self.GetAgentsOfLevel(level))
     45         sm.GetService('info').GetAgentScrollGroups(filteredAgents, scrollList)
     46         self.scroll.Load(contentList=scrollList)
     47 
     48     def GetAgentsOfLevel(self, level):
     49         self.agentsInCorp = sm.GetService('agents').GetAgentsByCorpID(self.ownerID).Clone()
     50         return self.agentsInCorp.Filter('level')[level]
     51 
     52     def FilterAgents(self, agents):
     53         agentCopy = agents[:]
     54         filteredAgents = Rowset(agentCopy.header)
     55         for agent in agentCopy:
     56             if agent.agentTypeID in AGENTS_IN_CORP_SHOW_INFO:
     57                 filteredAgents.append(agent)
     58 
     59         return filteredAgents