Show More
@@ -32,10 +32,24 b' from IPython.utils.py3compat import string_types' | |||||
32 | #----------------------------------------------------------------------------- |
|
32 | #----------------------------------------------------------------------------- | |
33 | class Widget(LoggingConfigurable): |
|
33 | class Widget(LoggingConfigurable): | |
34 |
|
34 | |||
35 | # Shared declarations |
|
35 | # Shared declarations (Class level) | |
36 | _keys = [] |
|
36 | _keys = [] | |
|
37 | widget_construction_callback = None | |||
|
38 | ||||
|
39 | def on_widget_constructed(callback): | |||
|
40 | """Class method, registers a callback to be called when a widget is | |||
|
41 | constructed. The callback must have the following signature: | |||
|
42 | callback(widget)""" | |||
|
43 | Widget.widget_construction_callback = callback | |||
|
44 | ||||
|
45 | def _handle_widget_constructed(widget): | |||
|
46 | """Class method, called when a widget is constructed.""" | |||
|
47 | if Widget.widget_construction_callback is not None and callable(Widget.widget_construction_callback): | |||
|
48 | Widget.widget_construction_callback(widget) | |||
|
49 | ||||
37 |
|
50 | |||
38 | # Public declarations |
|
51 | ||
|
52 | # Public declarations (Instance level) | |||
39 | target_name = Unicode('widget', help="""Name of the backbone model |
|
53 | target_name = Unicode('widget', help="""Name of the backbone model | |
40 | registered in the frontend to create and sync this widget with.""") |
|
54 | registered in the frontend to create and sync this widget with.""") | |
41 | default_view_name = Unicode(help="""Default view registered in the frontend |
|
55 | default_view_name = Unicode(help="""Default view registered in the frontend | |
@@ -83,6 +97,8 b' class Widget(LoggingConfigurable):' | |||||
83 |
|
97 | |||
84 | # Register after init to allow default values to be specified |
|
98 | # Register after init to allow default values to be specified | |
85 | self.on_trait_change(self._handle_property_changed, self.keys) |
|
99 | self.on_trait_change(self._handle_property_changed, self.keys) | |
|
100 | ||||
|
101 | Widget._handle_widget_constructed(self) | |||
86 |
|
102 | |||
87 |
|
103 | |||
88 | def __del__(self): |
|
104 | def __del__(self): |
General Comments 0
You need to be logged in to leave comments.
Login now