Show More
@@ -34,10 +34,10 b' from IPython.utils.py3compat import string_types' | |||||
34 | class BaseWidget(LoggingConfigurable): |
|
34 | class BaseWidget(LoggingConfigurable): | |
35 |
|
35 | |||
36 | # Shared declarations (Class level) |
|
36 | # Shared declarations (Class level) | |
37 | _keys = List(Unicode, default_value = [], |
|
|||
38 | help="List of keys comprising the state of the model.", allow_none=False) |
|
|||
39 | widget_construction_callback = None |
|
37 | widget_construction_callback = None | |
40 |
|
38 | |||
|
39 | keys = ['default_view_name'] | |||
|
40 | ||||
41 | def on_widget_constructed(callback): |
|
41 | def on_widget_constructed(callback): | |
42 | """Class method, registers a callback to be called when a widget is |
|
42 | """Class method, registers a callback to be called when a widget is | |
43 | constructed. The callback must have the following signature: |
|
43 | constructed. The callback must have the following signature: | |
@@ -84,22 +84,6 b' class BaseWidget(LoggingConfigurable):' | |||||
84 | removed from the frontend.""" |
|
84 | removed from the frontend.""" | |
85 | self._close_communication() |
|
85 | self._close_communication() | |
86 |
|
86 | |||
87 | _keys = ['default_view_name'] |
|
|||
88 |
|
||||
89 | # Properties |
|
|||
90 | @property |
|
|||
91 | def keys(self): |
|
|||
92 | """Lazily accumulate _keys from all superclasses and cache them in this class""" |
|
|||
93 | keys=[] |
|
|||
94 | for c in self.__class__.mro(): |
|
|||
95 | if hasattr(c, '_keys'): |
|
|||
96 | keys.extend(getattr(c,'_keys')) |
|
|||
97 | else: |
|
|||
98 | break |
|
|||
99 | # cache so future lookups are fast |
|
|||
100 | self.__class__.x = keys |
|
|||
101 | return keys |
|
|||
102 |
|
||||
103 | @property |
|
87 | @property | |
104 | def comm(self): |
|
88 | def comm(self): | |
105 | if self._comm is None: |
|
89 | if self._comm is None: | |
@@ -151,8 +135,7 b' class BaseWidget(LoggingConfigurable):' | |||||
151 |
|
135 | |||
152 | def _handle_recieve_state(self, sync_data): |
|
136 | def _handle_recieve_state(self, sync_data): | |
153 | """Called when a state is recieved from the frontend.""" |
|
137 | """Called when a state is recieved from the frontend.""" | |
154 | # Use _keys instead of keys - Don't get retrieve the css from the client side. |
|
138 | for name in self.keys: | |
155 | for name in self._keys: |
|
|||
156 | if name in sync_data: |
|
139 | if name in sync_data: | |
157 | try: |
|
140 | try: | |
158 | self._property_lock = (name, sync_data[name]) |
|
141 | self._property_lock = (name, sync_data[name]) | |
@@ -354,7 +337,7 b' class Widget(BaseWidget):' | |||||
354 | # Private/protected declarations |
|
337 | # Private/protected declarations | |
355 | _css = Dict() # Internal CSS property dict |
|
338 | _css = Dict() # Internal CSS property dict | |
356 |
|
339 | |||
357 |
|
|
340 | keys = ['visible', '_css'] + BaseWidget.keys | |
358 |
|
341 | |||
359 | def get_css(self, key, selector=""): |
|
342 | def get_css(self, key, selector=""): | |
360 | """Get a CSS property of the widget. Note, this function does not |
|
343 | """Get a CSS property of the widget. Note, this function does not |
General Comments 0
You need to be logged in to leave comments.
Login now