##// END OF EJS Templates
Added event for widget construction
Jonathan Frederic -
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
37
38
38 # Public declarations
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
50
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
@@ -84,6 +98,8 b' class Widget(LoggingConfigurable):'
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)
86
100
101 Widget._handle_widget_constructed(self)
102
87
103
88 def __del__(self):
104 def __del__(self):
89 """Object disposal"""
105 """Object disposal"""
General Comments 0
You need to be logged in to leave comments. Login now