Restored the playlist panel + cleanups now that I can load stuff into it ;).
[hooke.git] / hooke / ui / gui / panel / __init__.py
1 # Copyright\r
2 \r
3 from ....util.pluggable import IsSubclass, construct_odict\r
4 \r
5 \r
6 PANEL_MODULES = [\r
7     'commands',\r
8 #    'note',\r
9 #    'notebook',\r
10     'output',\r
11     'playlist',\r
12 #    'plot',\r
13 #    'propertyeditor',\r
14     'propertyeditor2',\r
15 #    'results',\r
16 #    'selection',\r
17 #    'welcome',\r
18     ]\r
19 """List of panel modules.  TODO: autodiscovery\r
20 """\r
21 \r
22 class Panel (object):\r
23     """Base class for Hooke GUI panels.\r
24     \r
25     :attr:`name` identifies the request type and should match the\r
26     module name.\r
27     """\r
28     def __init__(self, name=None, callbacks=None, **kwargs):\r
29         super(Panel, self).__init__(**kwargs)\r
30         self.name = name\r
31         if callbacks == None:\r
32             callbacks = {}\r
33         self._callbacks = callbacks\r
34 \r
35 \r
36 PANELS = construct_odict(\r
37     this_modname=__name__,\r
38     submodnames=PANEL_MODULES,\r
39     class_selector=IsSubclass(Panel, blacklist=[Panel]),\r
40     instantiate=False)\r
41 """:class:`hooke.compat.odict.odict` of :class:`Panel`\r
42 instances keyed by `.name`.\r
43 """\r