fleetFinderEntry.py (6203B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\fleet\fleetFinderEntry.py 2 import evefleet.client 3 from carbonui import const as uiconst 4 from carbonui.primitives.container import Container 5 from carbonui.primitives.frame import Frame 6 from carbonui.uiconst import defaultPadding 7 from eve.client.script.ui.control.entries.generic import Generic 8 from eve.client.script.ui.control.eveIcon import Icon 9 from eve.client.script.ui.shared.stateFlag import AddAndSetFlagIconFromData 10 from eveservices.menu import GetMenuService 11 from localization import GetByLabel 12 from menu import MenuLabel 13 import blue 14 15 class FleetFinderEntry(Generic): 16 __guid__ = 'listentry.FleetFinderEntry' 17 isDragObject = True 18 19 def Startup(self, *args): 20 Generic.Startup(self, *args) 21 self.picture = Container(name='picture', parent=self, pos=(defaultPadding, 22 2, 23 32, 24 32), state=uiconst.UI_PICKCHILDREN, align=uiconst.TOPLEFT) 25 self.portrait = Icon(name='portrait', parent=self.picture, size=32, align=uiconst.TOPLEFT, state=uiconst.UI_NORMAL) 26 27 def Load(self, node): 28 Generic.Load(self, node) 29 Frame(parent=self.picture) 30 sm.GetService('photo').GetPortrait(node.charID, 32, self.portrait) 31 AddAndSetFlagIconFromData(parentCont=self.picture, data=node, top=23) 32 self.portrait.OnClick = (sm.GetService('info').ShowInfo, cfg.eveowners.Get(node.charID).typeID, node.charID) 33 self.sr.label.left = 40 34 self.sr.label.text = node.label 35 self.sr.label.Update() 36 37 def GetHeight(self, *args): 38 node, width = args 39 node.height = 37 40 return node.height 41 42 def GetMenu(self, *args): 43 menuSvc = GetMenuService() 44 m = [] 45 fleet = self.sr.node.fleet 46 fleetSvc = sm.GetService('fleet') 47 if self.sr.node.fleetID != session.fleetid: 48 m += [(MenuLabel('UI/Fleet/FleetRegistry/JoinFleet'), self.ApplyToJoinFleet)] 49 m += [None] 50 elif fleetSvc.IsBoss(): 51 m += [(MenuLabel('UI/Fleet/FleetWindow/EditAdvert'), fleetSvc.OpenRegisterFleetWindow)] 52 if sm.GetService('fleet').GetCurrentAdvertForMyFleet() is not None: 53 m += [(MenuLabel('UI/Fleet/FleetWindow/RemoveAdvert'), fleetSvc.UnregisterFleet)] 54 m += [None] 55 fleetbossMenu = menuSvc.CharacterMenu(fleet.leader.charID) 56 m += [(MenuLabel('UI/Fleet/Ranks/Boss'), fleetbossMenu)] 57 if fleet.solarSystemID: 58 m += [(MenuLabel('UI/Fleet/FleetRegistry/BossLocationHeader'), menuSvc.CelestialMenu(itemID=fleet.solarSystemID))] 59 return m 60 61 def OnDblClick(self, *args): 62 self.ApplyToJoinFleet() 63 64 def ApplyToJoinFleet(self, *args): 65 fleetID = self.sr.node.fleet.fleetID 66 fleetSvc = sm.GetService('fleet') 67 fleetSvc.ApplyToJoinFleet(fleetID) 68 fleetSvc.LogFleetJoinAttempts(fleetID, evefleet.JOIN_SOURCE_FLEET_FINDER_ENTRY) 69 70 def GetHint(self): 71 fleetAd = self.sr.node.fleet 72 hint = '' 73 hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintFleetName', fleetName=fleetAd.fleetName) + '<br>' 74 hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintFleetBoss', charID=fleetAd.leader.charID) + '<br>' 75 if fleetAd.standing is not None: 76 hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintBossStanding', standing=fleetAd.standing) + '<br>' 77 if fleetAd.solarSystemID: 78 hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintFleetLocation', location=fleetAd.solarSystemID) + '<br>' 79 hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintFleetAge', fleetAge=blue.os.GetWallclockTime() - fleetAd.dateCreated) + '<br>' 80 if fleetAd.numMembers: 81 hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintFleetMemberCount', memberCount=fleetAd.numMembers) + '<br>' 82 if fleetAd.advertJoinLimit and fleetAd.numMembers >= fleetAd.advertJoinLimit: 83 txt = GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintFleetMemberCountMoreThanLimit', advertJoinLimit=fleetAd.advertJoinLimit) 84 hint += '<color=0xffdd0000>%s</color>' % txt + '<br>' 85 hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintScope') + '<br>' 86 if evefleet.IsOpenToCorp(fleetAd): 87 hint += GetByLabel('UI/Common/Corporation') + '<br>' 88 if evefleet.IsOpenToAlliance(fleetAd): 89 hint += GetByLabel('UI/Common/Alliance') + '<br>' 90 if evefleet.IsOpenToMilitia(fleetAd): 91 hint += GetByLabel('UI/Common/Militia') + '<br>' 92 if fleetAd.membergroups_minStanding is not None: 93 hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintMinimumStanding', standing=fleetAd.membergroups_minStanding) + '<br>' 94 if fleetAd.membergroups_minSecurity is not None: 95 hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintMinimumSecurity', security=fleetAd.membergroups_minSecurity) + '<br>' 96 if evefleet.IsOpenToPublic(fleetAd): 97 hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/PublicAccessScope') + '<br>' 98 elif evefleet.IsOpenToAllPublic(fleetAd): 99 hint += '<b>%s</b>' % GetByLabel('UI/Agency/Fleetup/Public Access') + '<br>' 100 if fleetAd.public_minStanding is not None: 101 hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintMinimumStanding', standing=fleetAd.public_minStanding) + '<br>' 102 if fleetAd.public_minSecurity is not None: 103 hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintMinimumSecurity', security=fleetAd.public_minSecurity) + '<br>' 104 if fleetAd.joinNeedsApproval: 105 hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/NeedsApproval') + '<br>' 106 if fleetAd.description: 107 hint += GetByLabel('UI/Fleet/FleetRegistry/AdvertDetails/HintFleetDescription', description=fleetAd.description) 108 return hint 109 110 def GetDragData(self, *args): 111 data = evefleet.client.FleetDragData(fleet_id=self.sr.node.fleet.fleetID, name=self.sr.node.fleet.fleetName) 112 return [data]