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

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