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

all_cso_members.py (2351B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\services\alliances\all_cso_members.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 eveexceptions import UserError
      6 
      7 class AllianceMembersO(BaseAllianceObject):
      8     __guid__ = 'allianceObject.members'
      9 
     10     def __init__(self, boundObject):
     11         BaseAllianceObject.__init__(self, boundObject)
     12         self.members = None
     13 
     14     def DoSessionChanging(self, isRemote, session, change):
     15         if 'allianceid' in change:
     16             self.members = None
     17 
     18     def GetMembers(self):
     19         if self.members is None:
     20             self.members = self.GetMoniker().GetMembers()
     21         return self.members
     22 
     23     def DeclareExecutorSupport(self, corpID):
     24         current = self.base__alliance.GetAlliance()
     25         if current.dictatorial and corpID != current.executorCorpID:
     26             raise UserError('CanNotChooseExecutorAsDictatorial')
     27         self.GetMoniker().DeclareExecutorSupport(corpID)
     28 
     29     def DeleteMember(self, corpID):
     30         self.GetMoniker().DeleteMember(corpID)
     31 
     32     def OnAllianceMemberChanged(self, allianceID, corpID, change):
     33         if allianceID != session.allianceid:
     34             return
     35         bAdd, bRemove = self.GetAddRemoveFromChange(change)
     36         if self.members is not None:
     37             if bAdd:
     38                 if len(change) != len(self.members.columns):
     39                     self.LogWarn('IncorrectNumberOfColumns ignoring change as Add change:', change)
     40                     return
     41                 line = []
     42                 for columnName in self.members.columns:
     43                     line.append(change[columnName][1])
     44 
     45                 self.members[corpID] = blue.DBRow(self.members.header, line)
     46             else:
     47                 if corpID not in self.members:
     48                     return
     49                 if bRemove:
     50                     del self.members[corpID]
     51                 else:
     52                     member = self.members[corpID]
     53                     for columnName in change.iterkeys():
     54                         setattr(member, columnName, change[columnName][1])
     55 
     56         corpUISignals.on_alliance_member_changed(allianceID, corpID, change)
     57 
     58     def ResetMembers(self):
     59         self.members = None