skillGroupSkillsBrowser.py (2745B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\skillPlan\skillsCatalogue\skillGroupSkillsBrowser.py 2 from carbonui import uiconst 3 from carbonui.control.scrollContainer import ScrollContainer 4 from carbonui.primitives.container import Container 5 from eve.client.script.ui.skillPlan.skillsCatalogue.skillCatalogueUtil import GetOrderedByColumn 6 from eve.client.script.ui.skillPlan.skillsCatalogue.skillGroupSkillEntry import SkillGroupSkillEntry 7 from localization import GetByLabel 8 from skills.client.skillGroupController import SkillGroupController 9 10 class SkillGroupSkillsBrowser(Container): 11 __notifyevents__ = ['OnSkillsChanged', 'OnSkillQueueChanged', 'OnSubscriptionChanged'] 12 numColumns = 2 13 14 def ApplyAttributes(self, attributes): 15 super(SkillGroupSkillsBrowser, self).ApplyAttributes(attributes) 16 sm.RegisterNotify(self) 17 self.groupID = None 18 self.controller = None 19 self.showPrimaryButton = attributes.get('showPrimaryButton', False) 20 self.entries = [] 21 self.scrollCont = ScrollContainer(parent=self) 22 self.scrollCont.ShowNoContentHint(GetByLabel('UI/SkillPlan/NoSkillGroupSelected')) 23 24 def SetGroupID(self, groupID): 25 self.groupID = groupID 26 self.controller = SkillGroupController(groupID) 27 28 def ReconstructSkillEntries(self, skills): 29 self.scrollCont.Flush() 30 self.entries = [] 31 if len(skills) == 0: 32 self.scrollCont.ShowNoContentHint(GetByLabel('UI/SkillPlan/NoSkillGroupSelected')) 33 else: 34 self.scrollCont.HideNoContentHint() 35 skills = GetOrderedByColumn(skills, self.numColumns) 36 for i, controller in enumerate(skills): 37 if not i % self.numColumns: 38 row = Container(name='row_%s' % i, parent=self.scrollCont, align=uiconst.TOTOP, height=SkillGroupSkillEntry.default_height, padBottom=8) 39 entry = self._ConstructEntry(controller, row, i) 40 self.entries.append(entry) 41 42 def _ConstructEntry(self, controller, parent, i): 43 return SkillGroupSkillEntry(parent=parent, align=uiconst.TOLEFT_PROP, width=0.5, controller=controller, showPrimaryButton=self.showPrimaryButton, padRight=0 if i % self.numColumns else 16) 44 45 def OnSkillsChanged(self, skills): 46 self._RefreshEntries() 47 48 def OnSkillQueueChanged(self): 49 self._RefreshEntries() 50 51 def OnSubscriptionChanged(self): 52 self._RefreshEntries() 53 54 def UpdateEntries(self): 55 self._RefreshEntries() 56 57 def UpdateEntryButtons(self): 58 for entry in self.entries: 59 entry.UpdatePrimaryButton() 60 61 def _RefreshEntries(self): 62 for entry in self.entries: 63 entry.Refresh()