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

all_cso_applications.py (2458B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\services\alliances\all_cso_applications.py
      2 import blue
      3 from eve.client.script.ui.services.alliances.all_cso_base import BaseAllianceObject
      4 from eve.client.script.ui.shared.neocom.corporation import corpUISignals
      5 from eve.common.lib import appConst as const
      6 
      7 class AllianceApplicationsO(BaseAllianceObject):
      8     __guid__ = 'allianceObject.applications'
      9 
     10     def __init__(self, boundObject):
     11         BaseAllianceObject.__init__(self, boundObject)
     12         self.applications = None
     13 
     14     def DoSessionChanging(self, isRemote, session, change):
     15         if 'allianceid' in change:
     16             self.applications = None
     17 
     18     def GetApplications(self, showRejected = False):
     19         if self.applications is None:
     20             self.applications = self.GetMoniker().GetApplications()
     21         if showRejected:
     22             return self.applications
     23         ret = {}
     24         for corpID in self.applications:
     25             app = self.applications[corpID]
     26             if app.state != const.allianceApplicationRejected:
     27                 ret[corpID] = app
     28 
     29         return ret
     30 
     31     def UpdateApplication(self, corpID, applicationText, state):
     32         return self.GetMoniker().UpdateApplication(corpID, applicationText, state)
     33 
     34     def OnAllianceApplicationChanged(self, allianceID, corpID, change):
     35         if allianceID != session.allianceid:
     36             return
     37         bAdd, bRemove = self.GetAddRemoveFromChange(change)
     38         if self.applications is not None:
     39             if bAdd:
     40                 if len(change) != len(self.applications.columns):
     41                     self.LogWarn('IncorrectNumberOfColumns ignoring change as Add change:', change)
     42                     return
     43                 line = []
     44                 for columnName in self.applications.columns:
     45                     line.append(change[columnName][1])
     46 
     47                 self.applications[corpID] = blue.DBRow(self.applications.header, line)
     48             else:
     49                 if corpID not in self.applications:
     50                     return
     51                 if bRemove:
     52                     del self.applications[corpID]
     53                 else:
     54                     application = self.applications[corpID]
     55                     for columnName in change.iterkeys():
     56                         setattr(application, columnName, change[columnName][1])
     57 
     58         corpUISignals.on_alliance_application_changed(allianceID, corpID, change)