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

all_ui_applications.py (26725B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\neocom\Alliances\all_ui_applications.py
      2 import localization
      3 import log
      4 import utillib
      5 from carbon.common.script.sys.serviceConst import ROLE_GML
      6 from carbon.common.script.util.linkUtil import GetShowInfoLink
      7 from carbonui import uiconst
      8 from carbonui.primitives.container import Container
      9 from carbonui.uicore import uicore
     10 from carbonui.control.checkbox import Checkbox
     11 from eve.client.script.ui.control.entries.generic import Generic
     12 from eve.client.script.ui.control.entries.util import GetFromClass
     13 from carbonui.control.window import Window
     14 from eve.client.script.ui.shared.neocom.corporation import corpUISignals
     15 from eve.client.script.ui.util import uix
     16 from eve.client.script.ui.control.toggleButtonGroup import ToggleButtonGroup
     17 from appConst import allianceApplicationRejected, allianceApplicationNew, allianceApplicationAccepted, allianceApplicationEffective
     18 from eve.client.script.ui.control import eveIcon, eveLabel, eveScroll
     19 from eve.client.script.ui.control.eveEditPlainText import EditPlainText
     20 from eveexceptions import UserError
     21 STATUSDICT = {allianceApplicationNew: 'UI/Corporations/CorporationWindow/Alliances/Applications/New',
     22  allianceApplicationAccepted: 'UI/Corporations/CorporationWindow/Alliances/Applications/Accepted',
     23  allianceApplicationEffective: 'UI/Corporations/CorporationWindow/Alliances/Applications/Effective',
     24  allianceApplicationRejected: 'UI/Corporations/CorporationWindow/Alliances/Applications/Rejected'}
     25 
     26 def _GetApplicationStatusStr(status):
     27     try:
     28         label = STATUSDICT[status]
     29     except KeyError:
     30         return ''
     31 
     32     return localization.GetByLabel(label)
     33 
     34 
     35 class FormAlliancesApplications(Container):
     36     __guid__ = 'form.AlliancesApplications'
     37     __nonpersistvars__ = []
     38     is_loaded = False
     39 
     40     def Load(self, *args):
     41         if self.is_loaded:
     42             return
     43         self.is_loaded = True
     44         self.sr.rejectedContainer = Container(name='rejectedContainer', align=uiconst.TOTOP, parent=self, pos=(0, 0, 0, 18))
     45         showRejectedLabel = localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/ShowRejected')
     46         self.sr.viewRejected = Checkbox(text=showRejectedLabel, parent=self.sr.rejectedContainer, settingsKey='viewRejected', checked=0, callback=self.CheckBoxChecked, align=uiconst.TOPLEFT, pos=(const.defaultPadding,
     47          const.defaultPadding,
     48          200,
     49          0))
     50         self.sr.scroll = eveScroll.Scroll(name='applications', parent=self, padding=(const.defaultPadding,
     51          const.defaultPadding,
     52          const.defaultPadding,
     53          const.defaultPadding))
     54         self.sr.tabs = ToggleButtonGroup(parent=self, idx=0, align=uiconst.TOTOP, callback=self.OnTabgroup)
     55         self.sr.tabs.AddButton('alliance', localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Alliance'))
     56         self.sr.tabs.AddButton('myApplications', localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/MyApplications'))
     57         self.sr.tabs.SelectByID('alliance')
     58         corpUISignals.on_alliance_application_changed.connect(self.OnAllianceApplicationChanged)
     59 
     60     def OnTabgroup(self, tab_id, old_tab_id):
     61         self.SetHint()
     62         if tab_id == 'alliance':
     63             self.ShowAllianceApplications(self.sr.viewRejected.checked)
     64         elif tab_id == 'myApplications':
     65             self.ShowMyApplications()
     66 
     67     def SetHint(self, hintstr = None):
     68         if self.sr.scroll:
     69             self.sr.scroll.ShowHint(hintstr)
     70 
     71     def ShowAllianceApplications(self, viewRejected):
     72         log.LogInfo('ShowAllianceApplications')
     73         try:
     74             sm.GetService('corpui').ShowLoad()
     75             scrolllist = []
     76             headers = []
     77             hint = localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/NoApplicationsFound')
     78             if session.allianceid is None:
     79                 hint = localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/CorporationNotInAlliance', corpName=cfg.eveowners.Get(session.corpid).ownerName)
     80             elif const.corpRoleDirector & session.corprole != const.corpRoleDirector:
     81                 log.LogInfo('ShowAllianceApplications Invalid Callee')
     82                 hint = localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/RequireDirectorHint')
     83             elif self is None or self.destroyed:
     84                 log.LogInfo('ShowAllianceApplications Destroyed or None')
     85             else:
     86                 nameLabel = localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/Name')
     87                 statusLabel = localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/Status')
     88                 headers = [nameLabel, statusLabel]
     89                 applications = sm.GetService('alliance').GetApplications(viewRejected)
     90                 log.LogInfo('ShowAllianceApplications len(applications):', len(applications))
     91                 owners = []
     92                 for application in applications.itervalues():
     93                     if application.corporationID not in owners:
     94                         owners.append(application.corporationID)
     95 
     96                 if len(owners):
     97                     cfg.eveowners.Prime(owners)
     98                 for application in applications.itervalues():
     99                     self.__AddApplicationToList(application, scrolllist, 0)
    100 
    101             self.sr.rejectedContainer.state = uiconst.UI_PICKCHILDREN
    102             self.sr.scroll.Load(fixedEntryHeight=19, contentList=scrolllist, headers=headers, noContentHint=hint)
    103         finally:
    104             sm.GetService('corpui').HideLoad()
    105 
    106     def CheckBoxChecked(self, checkbox):
    107         self.ShowAllianceApplications(checkbox.checked)
    108 
    109     def ShowMyApplications(self):
    110         log.LogInfo('ShowMyApplications')
    111         try:
    112             sm.GetService('corpui').ShowLoad()
    113             scrolllist = []
    114             headers = []
    115             hint = localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/NoApplicationsFound')
    116             if const.corpRoleDirector & session.corprole != const.corpRoleDirector:
    117                 log.LogInfo('ShowAllianceApplications Invalid Callee')
    118                 hint = localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/RequireDirectorHint')
    119             elif self is None or self.destroyed:
    120                 log.LogInfo('ShowMyApplications Destroyed or None')
    121             else:
    122                 nameLabel = localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/Name')
    123                 statusLabel = localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/Status')
    124                 headers = [nameLabel, statusLabel]
    125                 applications = sm.GetService('corp').GetAllianceApplications()
    126                 log.LogInfo('ShowMyApplications len(applications):', len(applications))
    127                 owners = []
    128                 for application in applications.itervalues():
    129                     if application.allianceID not in owners:
    130                         owners.append(application.allianceID)
    131 
    132                 if len(owners):
    133                     cfg.eveowners.Prime(owners)
    134                 for application in applications.itervalues():
    135                     self.__AddApplicationToList(application, scrolllist, 1)
    136 
    137             self.sr.rejectedContainer.state = uiconst.UI_HIDDEN
    138             self.sr.scroll.Load(fixedEntryHeight=19, contentList=scrolllist, headers=headers, noContentHint=hint)
    139         finally:
    140             sm.GetService('corpui').HideLoad()
    141 
    142     def __AddApplicationToList(self, application, scrolllist, myApplications):
    143         data = utillib.KeyVal()
    144         status = _GetApplicationStatusStr(application.state)
    145         if myApplications:
    146             data.label = '%s<t>%s' % (cfg.eveowners.Get(application.allianceID).ownerName, status)
    147             data.OnDblClick = self._ViewApplication
    148             data.GetMenu = self.GetApplicationMenu
    149         else:
    150             data.label = '%s<t>%s' % (cfg.eveowners.Get(application.corporationID).ownerName, status)
    151             data.OnDblClick = self.AllianceViewApplication
    152             data.GetMenu = self.GetAllianceMenu
    153         data.application = application
    154         scrolllist.append(GetFromClass(Generic, data))
    155 
    156     def GetAllianceMenu(self, entry):
    157         viewLabel = localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/View')
    158         ret = [(viewLabel, self.AllianceViewApplication, (entry,))]
    159         if session.role & ROLE_GML == ROLE_GML:
    160             ret += [('GM: Accept Application', sm.GetService('alliance').GMAcceptApplication, (entry.sr.node.application.corporationID,))]
    161         return ret
    162 
    163     def GetApplicationMenu(self, entry):
    164         application = entry.sr.node.application
    165         viewLabel = localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/View')
    166         data = [(viewLabel, self._ViewApplication, (entry,))]
    167         if application.state in (allianceApplicationRejected, allianceApplicationNew):
    168             deleteLabel = localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/Delete')
    169             data.append((deleteLabel, self.DeleteApplication, (application,)))
    170         return data
    171 
    172     def GetEntry(self, allianceID, corporationID):
    173         for entry in self.sr.scroll.GetNodes():
    174             if entry is None or entry is None:
    175                 continue
    176             if entry.panel is None or entry.panel.destroyed:
    177                 continue
    178             if entry.application.allianceID == allianceID and entry.application.corporationID == corporationID:
    179                 return entry
    180 
    181     def OnAllianceApplicationChanged(self, allianceID, corporationID, change):
    182         log.LogInfo('OnAllianceApplicationChanged allianceID', allianceID, 'corporationID', corporationID, 'change', change)
    183         if self.sr.scroll is None:
    184             log.LogInfo('OnAllianceApplicationChanged no scroll')
    185             return
    186         bAdd = 1
    187         bRemove = 1
    188         for old, new in change.itervalues():
    189             if old is not None:
    190                 bAdd = 0
    191             if new is not None:
    192                 bRemove = 0
    193 
    194         if bAdd and bRemove:
    195             raise RuntimeError('applications::OnAllianceApplicationChanged WTF')
    196         if bAdd:
    197             log.LogInfo('OnAllianceApplicationChanged adding application')
    198             activeTab = self.sr.tabs.GetSelected()
    199             myApplications = 0
    200             if session.corpid == corporationID:
    201                 if activeTab != 'myApplications':
    202                     return
    203                 application = sm.GetService('corp').GetAllianceApplications()[allianceID]
    204                 myApplications = 1
    205             else:
    206                 if activeTab != 'alliance':
    207                     return
    208                 application = sm.GetService('alliance').GetApplications()[corporationID]
    209             self.SetHint()
    210             scrolllist = []
    211             self.__AddApplicationToList(application, scrolllist, myApplications)
    212             if len(self.sr.scroll.sr.headers) > 0:
    213                 self.sr.scroll.AddEntries(-1, scrolllist)
    214             else:
    215                 self.sr.scroll.Load(contentList=scrolllist, headers=self.sr.headers)
    216         elif bRemove:
    217             log.LogInfo('OnAllianceApplicationChanged removing application')
    218             entry = self.GetEntry(allianceID, corporationID)
    219             if entry is not None:
    220                 self.sr.scroll.RemoveEntries([entry])
    221             else:
    222                 log.LogWarn('OnAllianceApplicationChanged application not found')
    223         else:
    224             log.LogInfo('OnAllianceApplicationChanged updating application')
    225             entry = self.GetEntry(allianceID, corporationID)
    226             if entry is None:
    227                 log.LogWarn('OnAllianceApplicationChanged application not found')
    228             if entry is not None:
    229                 if 'state' in change:
    230                     oldStatus, newStatus = change['state']
    231                     activeTab = self.sr.tabs.GetSelected()
    232                     if activeTab == 'alliance' and not self.sr.viewRejected.checked and newStatus == allianceApplicationRejected:
    233                         self.sr.scroll.RemoveEntries([entry])
    234                         return
    235                     status = _GetApplicationStatusStr(newStatus)
    236                     if corporationID == session.corpid:
    237                         label = '%s<t>%s' % (cfg.eveowners.Get(allianceID).ownerName, status)
    238                     else:
    239                         label = '%s<t>%s' % (cfg.eveowners.Get(corporationID).ownerName, status)
    240                     entry.panel.sr.node.label = label
    241                     entry.panel.sr.label.text = label
    242 
    243     def DeleteApplication(self, application, *args):
    244         try:
    245             sm.GetService('corpui').ShowLoad()
    246             sm.GetService('corp').DeleteAllianceApplication(application.allianceID)
    247         finally:
    248             sm.GetService('corpui').HideLoad()
    249 
    250     def _ViewApplication(self, entry, *args):
    251         self.ViewApplication(entry.sr.node.application.allianceID, entry.sr.node.application)
    252 
    253     def ViewApplication(self, allianceID, application = None):
    254         if application is None:
    255             application = sm.GetService('corp').GetAllianceApplications()[allianceID]
    256         if application is None:
    257             return
    258         wnd = MyAllianceApplicationWnd.Open(allianceID=allianceID, application=application)
    259         wnd.ShowModal()
    260 
    261     def CheckApplication(self, retval):
    262         if 'appltext' in retval:
    263             applicationText = retval['appltext']
    264             textLength = len(applicationText)
    265             if textLength > 1000:
    266                 return localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/ApplicationTooLong', textLength=textLength)
    267         return ''
    268 
    269     def AllianceViewApplication(self, entry, *args):
    270         corporationID = entry.sr.node.application.corporationID
    271         if const.corpRoleDirector & session.corprole != const.corpRoleDirector:
    272             return
    273         application = entry.sr.node.application
    274         canEditStatus = 0
    275         canAppendNote = 0
    276         stati = {}
    277         status = _GetApplicationStatusStr(application.state)
    278         format = []
    279         if application.state == allianceApplicationNew:
    280             canEditStatus = 1
    281             canAppendNote = 1
    282             rejectLabel = localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/Reject')
    283             acceptLabel = localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/Accept')
    284             stati[allianceApplicationRejected] = (rejectLabel, 0)
    285             stati[allianceApplicationAccepted] = (acceptLabel, 1)
    286         elif application.state == allianceApplicationAccepted:
    287             canEditStatus = 0
    288             canAppendNote = 0
    289         elif application.state == allianceApplicationEffective:
    290             canEditStatus = 0
    291             canAppendNote = 0
    292         elif application.state == allianceApplicationRejected:
    293             canEditStatus = 0
    294             canAppendNote = 0
    295         statusLabel = localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/Status')
    296         fromLabel = localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/From')
    297         termsAndConditionsLabel = localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/TermsAndConditions')
    298         format.append({'type': 'header',
    299          'text': fromLabel,
    300          'frame': 1})
    301         format.append({'type': 'text',
    302          'text': cfg.eveowners.Get(application.corporationID).ownerName,
    303          'frame': 1})
    304         format.append({'type': 'push',
    305          'frame': 1})
    306         format.append({'type': 'header',
    307          'text': statusLabel,
    308          'frame': 1})
    309         format.append({'type': 'text',
    310          'text': status,
    311          'frame': 1})
    312         format.append({'type': 'push',
    313          'frame': 1})
    314         format.append({'type': 'header',
    315          'text': termsAndConditionsLabel,
    316          'frame': 1})
    317         if canEditStatus == 0:
    318             format.append({'type': 'labeltext',
    319              'label': statusLabel,
    320              'text': status,
    321              'frame': 1})
    322             format.append({'type': 'bbline'})
    323         else:
    324             i = 1
    325             for key in stati:
    326                 if i == 1:
    327                     lbl = 'Status'
    328                 else:
    329                     lbl = ''
    330                 text, selected = stati[key]
    331                 format.append({'type': 'checkbox',
    332                  'setvalue': selected,
    333                  'key': key,
    334                  'label': lbl,
    335                  'text': text,
    336                  'frame': 1,
    337                  'group': 'stati'})
    338                 i = 0
    339 
    340             format.append({'type': 'bbline'})
    341         if canAppendNote == 1:
    342             allianceApplicationTextLabel = localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/AllianceApplicationText')
    343             format.append({'type': 'push',
    344              'frame': 1})
    345             format.append({'type': 'textedit',
    346              'setvalue': application.applicationText,
    347              'key': 'appltext',
    348              'label': allianceApplicationTextLabel,
    349              'required': 0,
    350              'frame': 1,
    351              'height': 96,
    352              'maxLength': 1000})
    353             format.append({'type': 'errorcheck',
    354              'errorcheck': self.CheckApplication})
    355             format.append({'type': 'push',
    356              'frame': 1})
    357             format.append({'type': 'bbline'})
    358         else:
    359             format.append({'type': 'push',
    360              'frame': 1})
    361             format.append({'type': 'textedit',
    362              'setvalue': application.applicationText,
    363              'readonly': 1,
    364              'frame': 1,
    365              'height': 96,
    366              'maxLength': 1000})
    367             format.append({'type': 'push',
    368              'frame': 1})
    369             format.append({'type': 'bbline'})
    370         if canEditStatus == 1 and canAppendNote == 1:
    371             btn = uiconst.OKCANCEL
    372         else:
    373             btn = uiconst.OK
    374         viewApplicationDetailsLabel = localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/ViewApplicationDetails')
    375         left = uicore.desktop.width / 2 - 400 / 2
    376         top = uicore.desktop.height / 2 - 400 / 2
    377         if application.state == allianceApplicationEffective:
    378             return uix.HybridWnd(format, viewApplicationDetailsLabel, 'applicationDetails', 0, btn, [left, top], 400, minH=320, unresizeAble=1)
    379         retval = uix.HybridWnd(format, viewApplicationDetailsLabel, 'applicationDetails', 1, btn, [left, top], 400, minH=320, unresizeAble=1)
    380         if retval is not None and canEditStatus == 1 and canAppendNote == 1:
    381             applicationText = retval['appltext']
    382             status = retval['stati']
    383             if status == allianceApplicationAccepted:
    384                 wars = sm.GetService('war').GetWars(corporationID, 1)
    385                 if len(wars):
    386                     warningLabel = localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/Warning')
    387                     warsWillBeAdoptedLabel = localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/WarsWillBeAdopted')
    388                     format = [{'type': 'header',
    389                       'text': warningLabel}, {'type': 'text',
    390                       'text': warsWillBeAdoptedLabel}, {'type': 'push'}]
    391                     for war in wars.itervalues():
    392                         aggressor = cfg.eveowners.Get(war.declaredByID)
    393                         defender = cfg.eveowners.Get(war.againstID)
    394                         text = '%s vs %s' % (GetShowInfoLink(aggressor.typeID, aggressor.name, war.declaredByID), GetShowInfoLink(defender.typeID, defender.name, war.againstID))
    395                         format.append({'type': 'text',
    396                          'text': text})
    397 
    398                     confirmAcceptLabel = localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/ConfirmAccept')
    399                     format.append({'type': 'text',
    400                      'text': confirmAcceptLabel,
    401                      'frame': 0})
    402                     adoptWarsLabel = localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/AdoptWars')
    403                     retval = uix.HybridWnd(format, adoptWarsLabel, 'adoptWars', 1, uiconst.OKCANCEL, [left, top], 400, minH=310, unresizeAble=1)
    404                     if retval is None:
    405                         return
    406             sm.GetService('alliance').UpdateApplication(corporationID, applicationText, status)
    407             if status == allianceApplicationAccepted:
    408                 raise UserError('AcceptedApplicationsTake24HoursToBecomeEffective')
    409 
    410     def GMAcceptApplication(self, corporationID):
    411         sm.GetService('alliance').GMAcceptApplication(corporationID)
    412 
    413 
    414 class ApplyToAllianceWnd(Window):
    415     __guid__ = 'form.ApplyToAllianceWnd'
    416     default_width = 400
    417     default_height = 350
    418     default_minSize = (default_width, default_height)
    419     default_windowID = 'ApplyToAllianceWindow'
    420 
    421     def ApplyAttributes(self, attributes):
    422         Window.ApplyAttributes(self, attributes)
    423         self.DefineButtons(uiconst.OKCANCEL, okFunc=self.Confirm, cancelFunc=self.Cancel)
    424         self.allianceID = attributes.get('allianceID')
    425         wndCaption = localization.GetByLabel('UI/Corporations/BaseCorporationUI/AllianceApplication')
    426         self.SetCaption(wndCaption)
    427         self.MakeUnResizeable()
    428         self.ConstructLayout()
    429 
    430     def ConstructLayout(self):
    431         allianceName = cfg.eveowners.Get(self.allianceID).name
    432         allianceInfoCont = Container(name='allianceInfo', parent=self.sr.main, align=uiconst.TOTOP, height=68, padding=const.defaultPadding)
    433         allianceLogoCont = Container(name='allianceLogo', parent=allianceInfoCont, align=uiconst.TOLEFT, width=68)
    434         allianceTextCont = Container(name='allianceName', parent=allianceInfoCont, align=uiconst.TOALL)
    435         applicationCont = Container(name='allianceInfo', parent=self.sr.main, align=uiconst.TOALL, padding=(const.defaultPadding,
    436          0,
    437          const.defaultPadding,
    438          const.defaultPadding))
    439         eveIcon.GetOwnerLogo(allianceLogoCont, self.allianceID, size=64, noServerCall=True)
    440         allianceText = localization.GetByLabel('UI/Corporations/BaseCorporationUI/ApplyForMembership', corporation=allianceName)
    441         allianceNameLabel = eveLabel.EveLabelLarge(parent=allianceTextCont, text=allianceText, top=12, align=uiconst.TOPLEFT, width=270)
    442         alliance = sm.GetService('alliance').GetAlliance(self.allianceID)
    443         corp = sm.GetService('corp').GetCorporation(alliance.executorCorpID)
    444         myCorpName = cfg.eveowners.Get(session.corpid).ownerName
    445         stdText = localization.GetByLabel('UI/Corporations/BaseCorporationUI/AskJoinAlliance', ceo='-----', ceoID=corp.ceoID, mycorp=myCorpName, alliancename=allianceName, sender=session.charid, mycorpname=myCorpName)
    446         editText = localization.GetByLabel('UI/Corporations/BaseCorporationUI/CorporationApplicationText')
    447         editLabel = eveLabel.EveLabelSmall(parent=applicationCont, text=editText, height=16, align=uiconst.TOTOP)
    448         self.applicationText = EditPlainText(setvalue=stdText, parent=applicationCont, align=uiconst.TOTOP, maxLength=1000, height=100)
    449         appText = localization.GetByLabel('UI/Corporations/BaseCorporationUI/ThisApplicationOverwritesOlderOnes')
    450         appLabel = eveLabel.EveLabelMedium(parent=applicationCont, text=appText, align=uiconst.TOTOP, top=8)
    451 
    452     def Confirm(self, *args):
    453         applicationText = self.applicationText.GetValue()
    454         self.result = applicationText
    455         self.SetModalResult(1)
    456 
    457     def Cancel(self, *args):
    458         self.result = None
    459         self.SetModalResult(0)
    460 
    461 
    462 class MyAllianceApplicationWnd(Window):
    463     __guid__ = 'form.MyAllianceApplicationWnd'
    464     default_width = 400
    465     default_height = 270
    466     default_minSize = (default_width, default_height)
    467 
    468     def ApplyAttributes(self, attributes):
    469         Window.ApplyAttributes(self, attributes)
    470         self.DefineButtons(uiconst.OK, okFunc=self.Confirm)
    471         self.allianceID = attributes.get('allianceID')
    472         self.application = attributes.get('application')
    473         self.windowID = 'viewApplicationWindow'
    474         wndCaption = localization.GetByLabel('UI/Corporations/CorpApplications/ViewApplicationDetailCaption')
    475         self.SetCaption(wndCaption)
    476         self.MakeUnResizeable()
    477         self.ConstructLayout()
    478 
    479     def ConstructLayout(self):
    480         allianceName = cfg.eveowners.Get(self.allianceID).name
    481         allianceInfoCont = Container(name='allianceInfo', parent=self.sr.main, align=uiconst.TOTOP, height=68, padding=const.defaultPadding)
    482         allianceLogoCont = Container(name='allianceLogo', parent=allianceInfoCont, align=uiconst.TOLEFT, width=68)
    483         allianceTextCont = Container(name='allianceName', parent=allianceInfoCont, align=uiconst.TOALL)
    484         applicationCont = Container(name='allianceInfo', parent=self.sr.main, align=uiconst.TOALL, padding=(const.defaultPadding,
    485          0,
    486          const.defaultPadding,
    487          const.defaultPadding))
    488         eveIcon.GetOwnerLogo(allianceLogoCont, self.allianceID, size=64, noServerCall=True)
    489         allianceText = localization.GetByLabel('UI/Corporations/CorpApplications/YourApplicationToJoin', corpName=allianceName)
    490         allianceNameLabel = eveLabel.EveLabelLarge(parent=allianceTextCont, text=allianceText, top=12, align=uiconst.TOPLEFT, width=270)
    491         editText = localization.GetByLabel('UI/Corporations/BaseCorporationUI/CorporationApplicationText')
    492         editLabel = eveLabel.EveLabelSmall(parent=applicationCont, text=editText, height=16, align=uiconst.TOTOP)
    493         if self.application.applicationText is not None:
    494             appText = self.application.applicationText
    495         else:
    496             appText = ''
    497         self.applicationText = EditPlainText(setvalue=appText, parent=applicationCont, align=uiconst.TOTOP, maxLength=1000, height=100, readonly=True)
    498         status = eveLabel.EveLabelSmall(parent=applicationCont, text=localization.GetByLabel('UI/Corporations/CorporationWindow/Alliances/Applications/Status'), align=uiconst.TOTOP, top=6)
    499         statusLabel = eveLabel.EveLabelSmallBold(parent=applicationCont, text=_GetApplicationStatusStr(self.application.state), height=12, align=uiconst.TOTOP)
    500 
    501     def Confirm(self, *args):
    502         self.result = None
    503         self.SetModalResult(0)