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

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()