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

manageLabels.py (4122B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\neocom\addressBook\manageLabels.py
      2 import localization
      3 from carbonui import uiconst
      4 from eve.client.script.ui.control import eveLabel
      5 from carbonui.button.group import ButtonGroup
      6 from eve.client.script.ui.shared.neocom.corporation.corpPanelConst import CorpPanel
      7 from eve.client.script.ui.shared.neocom.evemail import ManageLabelsBase
      8 from eveexceptions import UserError
      9 from player_messaging.client.ui_message import prompt_player_fsd_dialog
     10 __author__ = 'aevar'
     11 
     12 class ManageLabels(ManageLabelsBase):
     13     __guid__ = 'form.ManageLabels'
     14 
     15     def ApplyAttributes(self, attributes):
     16         ManageLabelsBase.ApplyAttributes(self, attributes)
     17         labelType = attributes.labelType
     18         self.storedSelection = []
     19         if labelType == 'contact':
     20             labelText = localization.GetByLabel('UI/PeopleAndPlaces/LabelsTextContacts')
     21         elif labelType == 'corpcontact':
     22             labelText = localization.GetByLabel('UI/PeopleAndPlaces/LabelsTextCorpContacts')
     23         else:
     24             labelText = localization.GetByLabel('UI/PeopleAndPlaces/LabelsTextAllianceContacts')
     25         self.labelType = labelType
     26         self.sr.textCont.state = uiconst.UI_DISABLED
     27         eveLabel.EveLabelMedium(text=labelText, parent=self.sr.textCont, padLeft=10, state=uiconst.UI_DISABLED, align=uiconst.TOTOP)
     28         ButtonGroup(btns=[[localization.GetByLabel('UI/Mail/AssignLabel'),
     29           self.AssignLabelFromBtn,
     30           None,
     31           81], [localization.GetByLabel('UI/Mail/LabelRemove'),
     32           self.RemoveLabelFromBtn,
     33           None,
     34           81]], parent=self.sr.bottom, idx=0, padTop=4)
     35         self.LoadScroll()
     36 
     37     def AssignLabelFromBtn(self, *args):
     38         self.ManageLabel(assign=1)
     39 
     40     def RemoveLabelFromBtn(self, *args):
     41         self.ManageLabel(assign=0)
     42 
     43     def ManageLabel(self, assign = 1):
     44         labelsChecked = self.FindLabelsChecked()
     45         numLabels = len(labelsChecked)
     46         scroll = None
     47         if numLabels < 1:
     48             raise UserError('CustomNotify', {'notify': localization.GetByLabel('UI/PeopleAndPlaces/NoLabelsSelected')})
     49         if self.labelType == 'contact':
     50             wnd = sm.GetService('addressbook').GetWnd()
     51             if wnd:
     52                 scroll = wnd.FindChild('rightScroll')
     53         else:
     54             wnd = sm.GetService('corpui').GetWnd()
     55             if wnd:
     56                 if self.labelType == 'corpcontact':
     57                     scroll = wnd.FindChild('corpcontactsform', 'rightScroll')
     58                 elif self.labelType == 'alliancecontact':
     59                     scroll = wnd.FindChild(CorpPanel.ALLIANCES_CONTACTS, 'rightScroll')
     60         if not wnd:
     61             raise UserError('CustomNotify', {'notify': localization.GetByLabel('UI/PeopleAndPlaces/NoContactsSelected')})
     62         if scroll is None:
     63             selectedContacts = []
     64         else:
     65             selectedContacts = scroll.GetSelected()
     66         try:
     67             contactIDs = [ selIDs.charID for selIDs in selectedContacts ]
     68         except:
     69             raise UserError('CustomNotify', {'notify': localization.GetByLabel('UI/PeopleAndPlaces/NoContactsSelected')})
     70 
     71         sum = 0
     72         for labelID in labelsChecked:
     73             sum = sum + labelID
     74 
     75         numLabels = len(labelsChecked)
     76         numContacts = len(contactIDs)
     77         if numContacts > 0:
     78             if assign:
     79                 text = localization.GetByLabel('UI/PeopleAndPlaces/LabelsAssigned', numLabels=numLabels, numContacts=numContacts)
     80             else:
     81                 text = localization.GetByLabel('UI/PeopleAndPlaces/LabelsRemoved', numLabels=numLabels, numContacts=numContacts)
     82             prompt_player_fsd_dialog('CustomNotify', {'notify': text})
     83         else:
     84             raise UserError('CustomNotify', {'notify': localization.GetByLabel('UI/PeopleAndPlaces/NoContactsSelected')})
     85         if assign == 1:
     86             sm.StartService('addressbook').AssignLabelFromWnd(contactIDs, sum, displayNotify=0)
     87         else:
     88             sm.StartService('addressbook').RemoveLabelFromWnd(contactIDs, sum)