noneNPCAccountOwnerDialog.py (5594B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\neocom\wallet\noneNPCAccountOwnerDialog.py 2 import localization 3 from carbonui import uiconst 4 from carbonui.control.singlelineedits.singleLineEditText import SingleLineEditText 5 from carbonui.primitives.container import Container 6 from eve.client.script.ui.control import eveLabel, eveScroll 7 from carbonui.button.group import ButtonGroup 8 from carbonui.control.button import Button 9 from eve.client.script.ui.control.entries.item import Item 10 from eve.client.script.ui.control.entries.util import GetFromClass 11 from carbonui.control.window import Window 12 from eve.client.script.ui.control.themeColored import SpriteThemeColored 13 from eve.common.lib import appConst as const 14 15 class NoneNPCAccountOwnerDialog(Window): 16 default_width = 320 17 default_height = 300 18 default_minSize = (default_width, default_height) 19 default_windowID = 'NoneNPCAccountOwnerDialog' 20 default_iconNum = 'res:/ui/Texture/WindowIcons/corporation.png' 21 22 def ApplyAttributes(self, attributes): 23 Window.ApplyAttributes(self, attributes) 24 self.ownerID = None 25 self.searchStr = '' 26 self.Confirm = self.ValidateOK 27 self.topParent = Container(name='topParent', parent=self.GetMainArea(), align=uiconst.TOTOP, height=70, clipChildren=True) 28 self.sr.errorParent = Container(name='errorParent', align=uiconst.TOBOTTOM, height=16, parent=self.sr.main, state=uiconst.UI_HIDDEN) 29 self.sr.scroll = eveScroll.Scroll(parent=self.sr.main, padding=(const.defaultPadding, 30 const.defaultPadding, 31 const.defaultPadding, 32 const.defaultPadding)) 33 self.sr.scroll.Startup() 34 self.sr.scroll.multiSelect = 0 35 self.sr.standardBtns = ButtonGroup(parent=self.GetMainArea(), btns=[[localization.GetByLabel('UI/Common/Buttons/OK'), 36 self.OnOK, 37 (), 38 81], [localization.GetByLabel('UI/Common/Buttons/Cancel'), 39 self.OnCancel, 40 (), 41 81]], idx=self.topParent.GetOrder() + 1) 42 self.SetCaption(localization.GetByLabel('UI/Wallet/WalletWindow/SelectCorpOrChar')) 43 self.label = eveLabel.EveLabelSmall(text=localization.GetByLabel('UI/Shared/TypeSearchString'), parent=self.topParent, left=70, top=16, state=uiconst.UI_NORMAL) 44 inpt = SingleLineEditText(name='edit', parent=self.topParent, pos=(70, 45 self.label.top + self.label.height + 2, 46 120, 47 0), align=uiconst.TOPLEFT, maxLength=32) 48 inpt.OnReturn = self.Search 49 self.sr.inpt = inpt 50 Button(parent=self.topParent, label=localization.GetByLabel('UI/Wallet/WalletWindow/WalletSearch'), pos=(inpt.left + inpt.width + 8, 51 inpt.top, 52 0, 53 0), func=self.Search, btn_default=1) 54 self.SetHint(localization.GetByLabel('UI/Common/TypeInSearch')) 55 56 def Search(self, *args): 57 scrolllist = [] 58 self.ShowLoad() 59 try: 60 self.searchStr = self.GetSearchStr() 61 self.SetHint() 62 if len(self.searchStr) < 1: 63 self.SetHint(localization.GetByLabel('UI/Shared/PleaseTypeSomething')) 64 return 65 result = sm.RemoteSvc('lookupSvc').LookupNoneNPCAccountOwners(self.searchStr, 0) 66 if result is None or not len(result): 67 self.SetHint(localization.GetByLabel('UI/Wallet/WalletWindow/NoCorpCharFound', searchString=self.searchStr)) 68 return 69 cfg.eveowners.Prime([ each.ownerID for each in result ]) 70 for each in result: 71 owner = cfg.eveowners.Get(each.ownerID) 72 scrolllist.append(GetFromClass(Item, {'label': owner.name, 73 'typeID': owner.typeID, 74 'itemID': each.ownerID, 75 'confirmOnDblClick': 1, 76 'OnClick': self.CheckSelected, 77 'listvalue': [owner.name, each.ownerID]})) 78 79 finally: 80 self.sr.scroll.Load(fixedEntryHeight=18, contentList=scrolllist, noContentHint=localization.GetByLabel('UI/Wallet/WalletWindow/SearchNoResults')) 81 self.CheckSelected() 82 self.HideLoad() 83 84 def GetSearchStr(self): 85 return self.sr.inpt.GetValue().strip() 86 87 def Confirm(self): 88 self.OnOK() 89 90 def ValidateOK(self): 91 if self.searchStr != self.GetSearchStr(): 92 self.Search() 93 return 0 94 if self.ownerID is None: 95 return 0 96 return 1 97 98 def SetHint(self, hintstr = None): 99 if self.sr.scroll: 100 self.sr.scroll.ShowHint(hintstr) 101 102 def OnOK(self, *args): 103 sel = self.sr.scroll.GetSelected() 104 if sel: 105 self.ownerID = sel[0].itemID 106 self.CloseByUser() 107 108 def OnCancel(self, *args): 109 self.ownerID = None 110 self.CloseByUser() 111 112 def CheckSelected(self, *args): 113 sel = 1 114 if len(self.sr.scroll.GetNodes()) > 0: 115 sel = self.sr.scroll.GetSelected() 116 self.DisplayPickHint(bool(sel)) 117 118 def DisplayPickHint(self, off = 1): 119 ep = self.sr.errorParent 120 ep.state = uiconst.UI_HIDDEN 121 ep.Flush() 122 if off: 123 ep.state = uiconst.UI_HIDDEN 124 else: 125 text = localization.GetByLabel('UI/Wallet/WalletWindow/SelectCharacterOrCorp') 126 t = eveLabel.EveLabelMedium(text=text, top=-3, parent=ep, width=self.minsize[0] - 32, state=uiconst.UI_DISABLED, color=(1.0, 0.0, 0.0, 1.0), align=uiconst.CENTER) 127 ep.state = uiconst.UI_DISABLED 128 ep.height = t.height + 8