defaultoverview.py (5034B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\parklife\overview\default\defaultoverview.py 2 import abc 3 import localization 4 from eve.client.script.parklife.overview.default import categories 5 from overviewPresets.overviewSettingsConst import PRESET_SETTINGS_GROUPS, PRESET_SETTINGS_ALWAYS_SHOWN_STATES, PRESET_SETTINGS_FILTERED_STATES 6 7 class BaseDefaultOverview(object): 8 __metaclass__ = abc.ABCMeta 9 10 def __init__(self, should_inform_of_update): 11 self._is_loaded = False 12 self._default_preset = None 13 self._default_tabs = None 14 self._all_presets = None 15 self._sorted_preset_names = None 16 self.should_inform_of_update = should_inform_of_update 17 18 @property 19 def all_presets(self): 20 if self._all_presets is None: 21 self._load_data() 22 return self._all_presets 23 24 @property 25 def sorted_preset_names(self): 26 if self._sorted_preset_names is None: 27 self._load_data() 28 return self._sorted_preset_names 29 30 @property 31 def default_preset(self): 32 if self._default_preset is None: 33 self._load_data() 34 return self._default_preset 35 36 @property 37 def default_tabs(self): 38 if self._default_tabs is None: 39 self._load_data() 40 return self._default_tabs 41 42 def activate(self): 43 pass 44 45 def _load_data(self): 46 if self._is_loaded: 47 return 48 self._do_load() 49 self._is_loaded = True 50 51 def get_name(self, name): 52 try: 53 return self.all_presets[name].name 54 except KeyError: 55 return None 56 57 def get_name_with_category(self, preset_name): 58 name = self.get_name(preset_name) 59 if not name: 60 return None 61 category_name = categories.get_name(self.get_category_id(preset_name)) 62 return '%s: %s' % (category_name, name) 63 64 def get_description(self, name): 65 try: 66 description_id = self.all_presets[name].description_id 67 if description_id: 68 return localization.GetByMessageID(description_id) 69 except KeyError: 70 return None 71 72 def get_category_id(self, preset_name): 73 try: 74 return self.all_presets[preset_name].category_id 75 except KeyError: 76 return categories.CATEGORY_NONE 77 78 def get_default_preset_data(self): 79 return {self.default_preset: self.get_data(self.default_preset)} 80 81 def get_all_presets_data(self): 82 return {preset_name:self.get_data(preset_name) for preset_name in self.all_presets.keys()} 83 84 def get_data(self, name): 85 try: 86 preset = self.all_presets[name] 87 return {PRESET_SETTINGS_GROUPS: preset.groups, 88 PRESET_SETTINGS_FILTERED_STATES: preset.filtered_states, 89 PRESET_SETTINGS_ALWAYS_SHOWN_STATES: preset.always_shown_states} 90 except (AttributeError, KeyError): 91 return {PRESET_SETTINGS_GROUPS: [], 92 PRESET_SETTINGS_FILTERED_STATES: [], 93 PRESET_SETTINGS_ALWAYS_SHOWN_STATES: []} 94 95 @abc.abstractmethod 96 def _do_load(self): 97 raise NotImplementedError 98 99 100 class PresetData(object): 101 102 def __init__(self, name, short_name, name_id, groups, description_id = None, category_id = categories.CATEGORY_NONE, always_shown_states = None, filtered_states = None): 103 self.name = name 104 self.short_name = short_name 105 self.name_id = name_id 106 self.description_id = description_id 107 self.category_id = category_id 108 self.groups = sorted(groups) 109 self.always_shown_states = always_shown_states or [] 110 self.filtered_states = filtered_states or [] 111 112 def __eq__(self, other): 113 a = (self.name, 114 self.short_name, 115 self.name_id, 116 self.groups, 117 self.always_shown_states, 118 self.filtered_states) 119 b = (other.name, 120 other.short_name, 121 other.name_id, 122 other.groups, 123 other.always_shown_states, 124 other.filtered_states) 125 return a == b 126 127 def __repr__(self): 128 return 'name: {name}, name ID: {nameID}, short name: {shortName}, groups: {groups}'.format(name=self.name, nameID=self.name_id, shortName=self.short_name, groups=self.groups) 129 130 131 class TabData(object): 132 133 def __init__(self, name, color, overview_preset, bracket_preset): 134 self.name = name 135 self.color = color 136 self.overview_preset = overview_preset 137 self.bracket_preset = bracket_preset 138 139 def __eq__(self, other): 140 a = (self.name, 141 self.color, 142 self.overview_preset, 143 self.bracket_preset) 144 b = (other.name, 145 other.color, 146 other.overview_preset, 147 other.bracket_preset) 148 return a == b 149 150 def __repr__(self): 151 return 'name: {name}, color: {color}, overview: {overview}, bracket: {bracket}'.format(name=self.name, color=self.color, overview=self.overview_preset, bracket=self.bracket_preset)