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

personalWalletPanel.py (3916B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\neocom\wallet\panels\personal\personalWalletPanel.py
      2 import uthread2
      3 from carbonui import uiconst
      4 from carbonui.primitives.container import Container
      5 from eve.client.script.ui.shared.neocom.wallet import walletConst
      6 from eve.client.script.ui.shared.neocom.wallet.panels.baseWalletPanel import BaseWalletPanel
      7 from eve.client.script.ui.shared.neocom.wallet.panels.personal.evermarkPanel import EverMarkPanel
      8 from eve.client.script.ui.shared.neocom.wallet.panels.personal.lpPanel import PersonalLPPanel
      9 from eve.client.script.ui.shared.neocom.wallet.panels.personal.personalISKPanel import PersonalISKPanel
     10 from eve.client.script.ui.shared.neocom.wallet.panels.personal.plex.main_panel import PlexPanel
     11 from eve.client.script.ui.shared.neocom.wallet.tabs.evermarkTab import EverMarkTab
     12 from eve.client.script.ui.shared.neocom.wallet.tabs.iskTab import IskTab
     13 from eve.client.script.ui.shared.neocom.wallet.tabs.lpTab import LoyaltyPointsTab
     14 from eve.client.script.ui.shared.neocom.wallet.tabs.plexTab import PlexTab
     15 from eve.client.script.ui.shared.neocom.wallet.walletTabGroup import WalletTabGroup
     16 from localization import GetByLabel
     17 
     18 class PersonalWalletPanel(BaseWalletPanel):
     19     default_name = 'PersonalWalletPanel'
     20 
     21     def __init__(self, *args, **kwargs):
     22         self.tabGroup = None
     23         PlexTab.failed_to_load_plex_balance.connect(self._on_failed_to_load_plex_balance)
     24         BaseWalletPanel.__init__(self, *args, **kwargs)
     25 
     26     def Close(self):
     27         PlexTab.failed_to_load_plex_balance.disconnect(self._on_failed_to_load_plex_balance)
     28         super(PersonalWalletPanel, self).Close()
     29 
     30     def ConstructLayout(self):
     31         tabGroupParent = Container(name='tabGroupParent', parent=self, align=uiconst.TOTOP, height=76, idx=0)
     32         self.tabGroup = WalletTabGroup(name='personalWalletTabGroup', parent=tabGroupParent, align=uiconst.TOALL, showLine=False, settingsID='personalWalletTabGroup', UIIDPrefix='PersonalWalletTab_')
     33 
     34     def Load(self, *args):
     35         if self.isInitialized:
     36             return
     37         self.ConstructPanels()
     38         self.tabGroup.AddTab(GetByLabel('UI/Common/ISK'), self.iskPanel, self, walletConst.PANEL_PERSONALISK, tabClass=IskTab)
     39         self.tabGroup.AddTab(GetByLabel('UI/Common/PLEX'), self.plexPanel, self, walletConst.PANEL_PLEX, tabClass=PlexTab)
     40         self.tabGroup.tabAlign = uiconst.TOTOP_PROP
     41         self.tabGroup.AddTab(GetByLabel('UI/Journal/JournalWindow/Agents/LoyaltyPoints'), self.lpPanel, self, walletConst.PANEL_LP, tabClass=LoyaltyPointsTab)
     42         self.tabGroup.AddTab(GetByLabel('UI/Wallet/WalletWindow/EverMarks'), self.everMarkPanel, self, walletConst.PANEL_EVERMARKS, tabClass=EverMarkTab)
     43         self.tabGroup.AutoSelect(useCallback=False)
     44         self.isInitialized = True
     45 
     46     def OnTabSelect(self):
     47         self.Load()
     48 
     49     def ConstructPanels(self):
     50         self.iskPanel = PersonalISKPanel(parent=self.panelContainer, state=uiconst.UI_HIDDEN, top=16)
     51         self.plexPanel = PlexPanel(parent=self.panelContainer, state=uiconst.UI_HIDDEN, top=16)
     52         self.lpPanel = PersonalLPPanel(parent=self.panelContainer, state=uiconst.UI_HIDDEN, top=16)
     53         self.everMarkPanel = EverMarkPanel(parent=self.panelContainer, state=uiconst.UI_HIDDEN, top=16)
     54 
     55     def BlinkPanelByIDs(self, panelIDs):
     56         if self.isInitialized:
     57             for panelID in panelIDs:
     58                 self.tabGroup.BlinkPanelByID(panelID)
     59 
     60     def SelectTab(self, panelID):
     61         self.tabGroup.SelectByID(panelID)
     62 
     63     def _on_failed_to_load_plex_balance(self):
     64         if self.tabGroup:
     65             plex_tab = self.tabGroup.GetTabByID(walletConst.PANEL_PLEX)
     66             if plex_tab:
     67                 plex_tab.Disable()
     68                 plex_tab.pickState = uiconst.TR2_SPS_CHILDREN
     69             self.tabGroup.SelectByID(walletConst.PANEL_PERSONALISK)