contactManagementMultiEditWindow.py (6221B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\neocom\addressBook\contactManagementMultiEditWindow.py 2 import localization 3 from carbonui import ButtonVariant, uiconst 4 from carbonui.button.group import ButtonGroup 5 from carbonui.control.button import Button 6 from carbonui.control.slider import Slider 7 from carbonui.control.window import Window 8 from carbonui.primitives.container import Container 9 from carbonui.primitives.containerAutoSize import ContainerAutoSize 10 from carbonui.primitives.line import Line 11 from carbonui.uicore import uicore 12 from eve.client.script.ui.shared.standings.levelSelector import StandingLevelSelector 13 from eve.client.script.ui.control import eveLabel 14 from eve.client.script.ui.util import uix 15 from player_messaging.client.ui_message import prompt_player_fsd_dialog 16 17 class ContactManagementMultiEditWnd(Window): 18 __guid__ = 'form.ContactManagementMultiEditWnd' 19 default_fixedWidth = 280 20 default_fixedHeight = 100 21 22 def ApplyAttributes(self, attributes): 23 super(ContactManagementMultiEditWnd, self).ApplyAttributes(attributes) 24 entityIDs = attributes.entityIDs 25 contactType = attributes.contactType 26 self.result = None 27 self.SetCaption(localization.GetByLabel('UI/PeopleAndPlaces/ContactManagement')) 28 self.entityIDs = entityIDs 29 self.level = None 30 self.contactType = contactType 31 self.ConstructLayout() 32 33 def ConstructLayout(self): 34 self.mainContainer = ContainerAutoSize(name='topCont', parent=self.sr.main, align=uiconst.TOTOP, callback=self.OnMainContainerSizeChanged) 35 charnameList = '' 36 for entityID in self.entityIDs: 37 charName = cfg.eveowners.Get(entityID).name 38 if charnameList == '': 39 charnameList = '%s' % charName 40 else: 41 charnameList = '%s, %s' % (charnameList, charName) 42 43 eveLabel.EveLabelLargeBold(text=charnameList, parent=self.mainContainer, align=uiconst.TOTOP, state=uiconst.UI_DISABLED) 44 Line(parent=self.mainContainer, align=uiconst.TOTOP, padding=(0, 4, 0, 4)) 45 self.standingList = {const.contactHighStanding: localization.GetByLabel('UI/PeopleAndPlaces/ExcellentStanding'), 46 const.contactGoodStanding: localization.GetByLabel('UI/PeopleAndPlaces/GoodStanding'), 47 const.contactNeutralStanding: localization.GetByLabel('UI/PeopleAndPlaces/NeutralStanding'), 48 const.contactBadStanding: localization.GetByLabel('UI/PeopleAndPlaces/BadStanding'), 49 const.contactHorribleStanding: localization.GetByLabel('UI/PeopleAndPlaces/TerribleStanding')} 50 levelList = self.standingList.keys() 51 levelList.sort() 52 levelText = self.standingList.get(self.level) 53 self.levelText = eveLabel.EveLabelMedium(text=levelText, parent=self.mainContainer, align=uiconst.TOTOP, state=uiconst.UI_DISABLED) 54 if self.contactType != 'contact': 55 bottomCont = Container(name='bottomCont', parent=self.mainContainer, align=uiconst.TOTOP, height=40, padding=uiconst.defaultPadding) 56 startVal = 0.5 57 sliderContainer = Container(parent=bottomCont, name='sliderContainer', align=uiconst.CENTERTOP, height=20, width=210) 58 self.sr.slider = self.AddSlider(sliderContainer, startVal=startVal) 59 self.sr.slider.SetValue(startVal) 60 boxCont = bottomCont 61 iconPadding = 28 62 else: 63 boxCont = Container(name='boxCont', parent=self.mainContainer, align=uiconst.TOTOP, height=55) 64 iconPadding = 6 65 levelSelectorContainer = Container(parent=boxCont, name='levelSelectorContainer', align=uiconst.TOTOP, pos=(0, 0, 0, 55)) 66 self.levelSelector = StandingLevelSelector(name='levelSelector', parent=levelSelectorContainer, align=uiconst.CENTERTOP, pos=(0, 67 14, 68 100 + iconPadding * 4, 69 55), iconPadding=iconPadding) 70 self.levelSelector.OnStandingLevelSelected = self.OnStandingLevelSelected 71 self.btnGroup = ButtonGroup(parent=self.mainContainer, align=uiconst.TOTOP) 72 confirm_button = Button(parent=self.btnGroup, label=localization.GetByLabel('UI/PeopleAndPlaces/EditContact'), func=self.Confirm, args=(), btn_modalresult=1, btn_default=1, variant=ButtonVariant.PRIMARY) 73 Button(parent=self.btnGroup, label=localization.GetByLabel('UI/Common/Buttons/Cancel'), func=self.Cancel, args=()) 74 if self.level is None: 75 self.levelText.text = localization.GetByLabel('UI/PeopleAndPlaces/SelectStanding') 76 uicore.registry.SetFocus(confirm_button) 77 78 def OnMainContainerSizeChanged(self, *args, **kwds): 79 _, height = self.GetWindowSizeForContentSize(height=self.mainContainer.height) 80 self.SetFixedHeight(height) 81 82 def AddSlider(self, where, startVal = 0): 83 return Slider(name='standing', config='standing', parent=where, on_dragging=self.OnSetValue, minValue=-10.0, maxValue=10.0) 84 85 def OnSetValue(self, slider): 86 self.levelText.text = localization.GetByLabel('UI/AddressBook/SliderLabel', value=round(slider.GetValue(), 1), standingText=uix.GetStanding(round(slider.GetValue(), 1))) 87 88 def OnStandingLevelSelected(self, level): 89 if self.contactType != 'contact': 90 level = level / 20.0 + 0.5 91 self.sr.slider.SetValue(level) 92 else: 93 self.level = level 94 self.levelText.text = self.standingList.get(self.level) 95 96 def Confirm(self): 97 if self.contactType != 'contact': 98 if self.levelText.text == localization.GetByLabel('UI/PeopleAndPlaces/SelectStanding'): 99 prompt_player_fsd_dialog('NoStandingsSelected') 100 return 101 relationshipID = round(self.sr.slider.value, 1) 102 else: 103 if self.level is None: 104 prompt_player_fsd_dialog('NoStandingsSelected') 105 return 106 relationshipID = self.level 107 self.result = relationshipID 108 if getattr(self, 'isModal', None): 109 self.SetModalResult(1) 110 111 def Cancel(self): 112 self.result = None 113 if getattr(self, 'isModal', None): 114 self.SetModalResult(0)