]> git.openstreetmap.org Git - osqa.git/blob - forum/modules/ui.py
5cfcac42b5d2347daa85cc552333a264c26c2785
[osqa.git] / forum / modules / ui.py
1
2
3 class Registry(list):
4     def add(self, register):
5         for i, r in enumerate(self):
6             if r.weight > register.weight:
7                 self.insert(i, register)
8                 return
9
10         self.append(register)
11
12 """Links next in the very top of the page"""
13 HEADER_LINKS = 'HEADER_LINKS'
14
15 """The tabs next to the top of the page"""
16 PAGE_TOP_TABS = 'PAGE_TOP_TABS'
17
18
19 __CONTAINER = {
20     HEADER_LINKS: Registry(),
21     PAGE_TOP_TABS: Registry()
22 }
23
24
25 def register(registry, ui_object):
26     if not registry in __CONTAINER:
27         raise('unknown registry')
28
29     __CONTAINER[registry].add(ui_object)
30
31 def register_multi(registry, *ui_objects):
32     for ui_object in ui_objects:
33         register(registry, ui_object)
34
35
36 def get_registry_by_name(name):
37     name = name.upper()
38
39     if not name in __CONTAINER:
40         raise('unknown registry')
41
42     return __CONTAINER[name]
43
44
45
46 from ui_objects import *
47