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

groupInfoWnd.py (3499B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\structure\accessGroups\groupInfoWnd.py
      2 from carbon.common.script.util.linkUtil import GetShowInfoLink
      3 from carbonui.control.scrollContainer import ScrollContainer
      4 from carbonui.primitives.container import Container
      5 from carbonui.primitives.containerAutoSize import ContainerAutoSize
      6 from eve.client.script.ui.control.eveLabel import EveLabelMedium, WndCaptionLabel
      7 from carbonui.control.window import Window
      8 from eve.client.script.ui.control.themeColored import SpriteThemeColored
      9 from eve.common.script.sys.idCheckers import IsNPCCorporation
     10 from localization import GetByLabel
     11 import carbonui.const as uiconst
     12 from utillib import KeyVal
     13 
     14 class GroupInfoWnd(Window):
     15     default_minSize = (200, 130)
     16     default_width = 300
     17     default_iconNum = 'res:/UI/Texture/WindowIcons/accessGroups.png'
     18     default_captionLabelPath = 'UI/Structures/AccessGroups/AccessGroup'
     19 
     20     def ApplyAttributes(self, attributes):
     21         Window.ApplyAttributes(self, attributes)
     22         self.topParent = Container(name='topParent', parent=self.GetMainArea(), align=uiconst.TOTOP, height=52, clipChildren=True)
     23         mainIcon = SpriteThemeColored(name='mainicon', parent=self.topParent, state=uiconst.UI_NORMAL, pos=(0, -8, 64, 64), texturePath=self.iconNum, colorType=uiconst.COLORTYPE_UIHILIGHTGLOW)
     24         mainIcon.GetDragData = self.GetDragDataForIcon
     25         mainIcon.isDragObject = True
     26         self.groupID = attributes.groupID
     27         self.groupInfo = GetGroupInfo(self.groupID)
     28         isNPCCorpGroup = IsNPCCorporation(self.groupInfo.creatorID)
     29         self.groupName = self.groupInfo['name']
     30         groupDisplayName = cfg.eveowners.Get(self.groupInfo.creatorID).name if isNPCCorpGroup else self.groupName
     31         WndCaptionLabel(text=groupDisplayName, parent=self.topParent)
     32         scrollContainer = ScrollContainer(parent=self.sr.main, padding=(10, 0, 10, 10))
     33         self.contentCont = ContainerAutoSize(parent=scrollContainer, align=uiconst.TOTOP, columns=1)
     34         self.LoadContentCont()
     35         w, h = self.contentCont.GetAbsoluteSize()
     36         newHeight = h + self.topParent.height + 40
     37         self.height = newHeight
     38 
     39     def LoadContentCont(self):
     40         self.contentCont.Flush()
     41         groupDesc = self.groupInfo['description']
     42         admins = self.groupInfo['admins']
     43         if groupDesc:
     44             EveLabelMedium(parent=self.contentCont, text=groupDesc, padTop=6, align=uiconst.TOTOP)
     45         else:
     46             descText = GetByLabel('UI/Structures/AccessGroups/NoGroupDescription')
     47             EveLabelMedium(parent=self.contentCont, text=descText, align=uiconst.TOTOP, padTop=6, italic=True)
     48         for adminID in admins:
     49             ownerInfo = cfg.eveowners.Get(adminID)
     50             charName = ownerInfo.name
     51             charText = GetShowInfoLink(ownerInfo.typeID, charName, itemID=adminID)
     52             text = GetByLabel('UI/Structures/AccessGroups/GroupOwner', ownerName=charText)
     53             EveLabelMedium(parent=self.contentCont, text=text, align=uiconst.TOTOP, padTop=6, state=uiconst.UI_NORMAL)
     54 
     55     def GetDragDataForIcon(self):
     56         ret = KeyVal(nodeType='AccessGroupEntry', groupID=self.groupID, label=self.groupName)
     57         return [ret]
     58 
     59 
     60 def GetGroupInfo(groupID):
     61     accessGroupsController = sm.GetService('structureControllers').GetAccessGroupController()
     62     groupInfo = accessGroupsController.GetGroupInfoFromID(groupID, fetchToServer=True)
     63     return groupInfo