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