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

extaColumnUtil.py (3445B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\structure\structureBrowser\extaColumnUtil.py
      2 from eve.client.script.ui.station.stationServiceConst import serviceDataByNameID, serviceIDAlwaysPresent
      3 from eve.common.script.util.eveFormat import FmtISK
      4 from localization import GetByLabel
      5 import structures
      6 
      7 def GetSettingDataObjectForServiceName(serviceName):
      8     serviceData = serviceDataByNameID.get(serviceName, None)
      9     if not serviceData or serviceData.serviceID == serviceIDAlwaysPresent:
     10         return
     11     settingIDForService = structures.SERVICES_ACCESS_SETTINGS.get(serviceData.serviceID, None)
     12     if settingIDForService is None:
     13         return
     14     settingInfo = structures.SETTING_OBJECT_BY_SETTINGID.get(settingIDForService, None)
     15     return settingInfo
     16 
     17 
     18 def GetHeaderForService(serviceName):
     19     settingData = GetSettingDataObjectForServiceName(serviceName)
     20     if settingData is None:
     21         return
     22     labelPath = settingData.labelPath
     23     if labelPath:
     24         return GetByLabel(labelPath)
     25 
     26 
     27 class ExtraColumnProvider(object):
     28     NO_VALUE_FOUND_CHAR = '-'
     29     NOT_AVAILABLE = '_'
     30 
     31     def GetServicesForUniqueColumns(self, allServicesChecked):
     32         settingsAdded = []
     33         servicesToUseForColumns = []
     34         for eachServiceName in allServicesChecked:
     35             settingData = GetSettingDataObjectForServiceName(eachServiceName)
     36             if settingData and settingData.settingID not in settingsAdded:
     37                 settingsAdded.append(settingData.settingID)
     38                 servicesToUseForColumns.append(eachServiceName)
     39 
     40         return servicesToUseForColumns
     41 
     42     def GetColumnText(self, controller, serviceName):
     43         dataAndValue = self._GetSettingDataAndValueForColumn(controller, serviceName)
     44         if dataAndValue == self.NOT_AVAILABLE:
     45             return
     46         settingData, value = dataAndValue
     47         if value is None:
     48             return self.NO_VALUE_FOUND_CHAR
     49         text = FormatColumnValue(value, settingData.valueType, settingData.settingID)
     50         return text
     51 
     52     def GetValueForColumn(self, controller, serviceName):
     53         dataAndValue = self._GetSettingDataAndValueForColumn(controller, serviceName)
     54         if dataAndValue == self.NOT_AVAILABLE:
     55             return self.NOT_AVAILABLE
     56         return dataAndValue[1]
     57 
     58     def _GetSettingDataAndValueForColumn(self, controller, serviceName):
     59         serviceData = serviceDataByNameID.get(serviceName, None)
     60         if not serviceData:
     61             return self.NOT_AVAILABLE
     62         settingData = GetSettingDataObjectForServiceName(serviceName)
     63         if settingData is None:
     64             return self.NOT_AVAILABLE
     65         value = controller.GetInfoForExtraColumns(serviceData.serviceID)
     66         return (settingData, value)
     67 
     68 
     69 def FormatColumnValue(value, valueType, settingID):
     70     if settingID == structures.SETTING_HOUSING_CAN_DOCK:
     71         return bool(value is not None)
     72     if settingID == structures.SETTING_JUMP_BRIDGE_ACTIVATION:
     73         return bool(value is not None)
     74     if valueType == structures.SETTINGS_TYPE_INT:
     75         return int(value)
     76     if valueType == structures.SETTINGS_TYPE_PERCENTAGE:
     77         return GetByLabel('UI/Structures/Browser/PercentageText', value=value)
     78     if valueType == structures.SETTINGS_TYPE_BOOL:
     79         return bool(value)
     80     if valueType == structures.SETTINGS_TYPE_ISK:
     81         return FmtISK(value, showFractionsAlways=0)
     82     return value