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