contractsWnd.py (6485B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\neocom\contracts\contractsWnd.py 2 from carbonui import uiconst 3 from carbonui.primitives.container import Container 4 from carbonui.control.window import Window 5 from carbonui.control.tabGroup import GetTabData 6 from carbonui.window.header.tab_navigation import TabNavigationWindowHeader 7 from eve.client.script.ui.shared.neocom.contracts.contractPanels import StartPagePanel, MyContractsPanel 8 import eve.client.script.ui.shared.pointerTool.pointerToolConst as pConst 9 from eve.common.lib import appConst 10 from eve.client.script.ui.shared.neocom.contracts.contractsearch import ContractSearchPanel 11 from localization import GetByLabel 12 from player_messaging.client.ui_message import prompt_player_fsd_dialog 13 14 class ContractsWindow(Window): 15 __guid__ = 'form.ContractsWindow' 16 __notifyevents__ = ['OnDeleteContracts', 'OnAddIgnore'] 17 default_width = 630 18 default_height = 500 19 default_windowID = 'contracts' 20 default_captionLabelPath = 'Tooltips/Neocom/Contracts' 21 default_descriptionLabelPath = 'Tooltips/Neocom/Contracts_description' 22 default_iconNum = 'res:/ui/Texture/WindowIcons/contracts.png' 23 24 def ApplyAttributes(self, attributes): 25 super(ContractsWindow, self).ApplyAttributes(attributes) 26 lookup = attributes.lookup 27 idx = attributes.idx 28 self.scope = uiconst.SCOPE_INGAME 29 self.SetMinSize([700, 560]) 30 self.pages = {0: None} 31 self.currPage = 0 32 self.previousPageContractID = None 33 self.currentPageContractID = None 34 self.nextPageContractID = None 35 self.parsingIssuers = False 36 self.parsingType = False 37 self.issuersByName = {} 38 self.fetching = 0 39 self.LoadTabs(lookup, idx) 40 if lookup: 41 setattr(self.myContractsParent, 'lookup', lookup) 42 self.LookupOwner(lookup) 43 else: 44 self.SelectTab(idx) 45 46 def MouseEnterHighlightOn(self, wnd, *args): 47 wnd.SetRGB(1.0, 1.0, 0.0) 48 49 def MouseExitHighlightOff(self, wnd, *args): 50 wnd.SetRGB(1.0, 1.0, 1.0) 51 52 def LookupOwner(self, ownerName): 53 if self.IsMinimized(): 54 self.Maximize() 55 setattr(self.myContractsParent, 'lookup', ownerName) 56 settings.user.ui.Set('mycontracts_filter_status', appConst.conStatusFinished) 57 self.tabGroup.SelectByIdx(1) 58 self.myContractsParent.ShowOwner(ownerName) 59 60 def ShowMyContractsPanel(self, status, forCorp = False): 61 if self.IsMinimized(): 62 self.Maximize() 63 self.tabGroup.SelectByIdx(1) 64 if forCorp: 65 self.myContractsParent.ShowRequireAttentionMyCorp(status) 66 else: 67 self.myContractsParent.ShowRequireAttention(status) 68 69 def Prepare_Header_(self): 70 self.header = TabNavigationWindowHeader() 71 72 def LoadTabs(self, lookup = None, idx = None): 73 self.startPageParent = StartPagePanel(name='startPageParent', parent=self.sr.main, align=uiconst.TOALL, state=uiconst.UI_HIDDEN, idx=1) 74 self.myContractsParent = MyContractsPanel(name='myContractsParent', parent=self.sr.main, align=uiconst.TOALL, pos=(0, 0, 0, 0), state=uiconst.UI_HIDDEN, idx=1) 75 self.contractSearchParent = Container(name='contractSearchParent', parent=self.sr.main, align=uiconst.TOALL, pos=(0, 0, 0, 0), state=uiconst.UI_HIDDEN, idx=1) 76 self.contractSearchContent = ContractSearchPanel(parent=self.contractSearchParent, parentContentPadding=self.content_padding) 77 self.privateContractsParent = Container(name='privateContractsParent', parent=self.sr.main, align=uiconst.TOALL, pos=(0, 0, 0, 0), state=uiconst.UI_HIDDEN, idx=1) 78 self.tabGroup = self.header.tab_group 79 startPageLabel = GetByLabel(self.default_captionLabelPath) 80 tabList = (GetTabData(label=startPageLabel, panel=self.startPageParent, code=self, tabID='startPage'), GetTabData(label=GetByLabel('UI/Contracts/ContractsWindow/MyContracts'), panel=self.myContractsParent, code=self, tabID='myContracts'), GetTabData(label=GetByLabel('UI/Contracts/ContractsSearch/ContractSearch'), panel=self.contractSearchParent, code=self, tabID='contractSearch', uniqueName=pConst.UNIQUE_NAME_AVAILABLE_CONTRACTS_TAB)) 81 self.tabGroup.Startup(tabList, 'contractsTabs', autoselecttab=0) 82 83 def SelectTab(self, idx): 84 if idx: 85 self.tabGroup.SelectByIdx(idx) 86 else: 87 h = getattr(sm.StartService('contracts'), 'hasContractWindowBeenOpened', False) 88 if not h: 89 self.tabGroup.SelectByIdx(0) 90 setattr(sm.StartService('contracts'), 'hasContractWindowBeenOpened', True) 91 else: 92 self.tabGroup.AutoSelect() 93 94 def Load(self, key): 95 doInit = self.TabNotInitiatedCheck(key) 96 if key == 'myContracts': 97 if doInit: 98 self.myContractsParent.Init() 99 elif key == 'startPage': 100 self.startPageParent.Init() 101 elif key == 'contractSearch': 102 self.contractSearchContent.Load(key) 103 self.contractSearchContent.SetInitialFocus() 104 105 def TabNotInitiatedCheck(self, key): 106 doInit = not getattr(self, 'init_%s' % key, False) 107 setattr(self, 'init_%s' % key, True) 108 return doInit 109 110 def Confirm(self, *etc): 111 if self.tabGroup.GetSelectedArgs() == 'availableContracts': 112 self.OnReturn_AvailableContracts() 113 114 def GetError(self, checkNumber = 1): 115 return '' 116 117 def Error(self, error): 118 if error: 119 prompt_player_fsd_dialog('CustomInfo', {'info': error}) 120 121 def OnDeleteContracts(self, contractIDs, *args): 122 123 def DeleteContractInList(list, contractID): 124 nodes = list.GetNodes() 125 for n in nodes: 126 if n.contractID == contractID: 127 list.RemoveEntries([n]) 128 return 129 130 list = self.sr.main.FindChild('mycontractlist') 131 if list: 132 for contractID in contractIDs: 133 DeleteContractInList(list, contractID) 134 135 def OnAddIgnore(self, ignoreID, *args): 136 if self.Get('contractlist'): 137 list = self.contractlist 138 else: 139 cont = self.myContractsParent 140 list = None 141 for child in cont.children: 142 if hasattr(child, 'name') and child.name == 'mycontractlist': 143 list = child 144 break