Show More
@@ -14,18 +14,27 Represents a container that can be used to group other widgets. | |||
|
14 | 14 | # Imports |
|
15 | 15 | #----------------------------------------------------------------------------- |
|
16 | 16 | from .widget import DOMWidget |
|
17 | from IPython.utils.traitlets import Unicode, Tuple, Instance | |
|
17 | from IPython.utils.traitlets import Unicode, Tuple, Instance, TraitError | |
|
18 | 18 | |
|
19 | 19 | #----------------------------------------------------------------------------- |
|
20 | 20 | # Classes |
|
21 | 21 | #----------------------------------------------------------------------------- |
|
22 | ||
|
23 | class TupleOfDOMWidgets(Tuple): | |
|
24 | """Like Tuple(Instance(DOMWidget)), but without checking length.""" | |
|
25 | def validate_elements(self, obj, value): | |
|
26 | for v in value: | |
|
27 | if not isinstance(v, DOMWidget): | |
|
28 | raise TraitError("Container.children must be DOMWidgets, not %r" % v) | |
|
29 | return value | |
|
30 | ||
|
22 | 31 | class ContainerWidget(DOMWidget): |
|
23 | 32 | _view_name = Unicode('ContainerView', sync=True) |
|
24 | 33 | |
|
25 | 34 | # Keys, all private and managed by helper methods. Flexible box model |
|
26 | 35 | # classes... |
|
27 |
children = Tuple( |
|
|
28 |
_children = Tuple( |
|
|
36 | children = TupleOfDOMWidgets() | |
|
37 | _children = TupleOfDOMWidgets(sync=True) | |
|
29 | 38 | |
|
30 | 39 | def _children_changed(self, name, old, new): |
|
31 | 40 | """Validate children list. |
General Comments 0
You need to be logged in to leave comments.
Login now