##// END OF EJS Templates
Cherry pick of @jasongrout 's 2bc2f96....
Cherry pick of @jasongrout 's 2bc2f96. Only merged changes to notebook and kernel... (see original comment below). Separate the widget registry from the widget managers; attach widget managers to kernels. Yet to do: take care of clean-up when a kernel is deleted Conflicts: IPython/html/static/notebook/js/widgetmanager.js IPython/html/static/notebook/js/widgets/widget.js

File last commit:

r14607:32716dc4
r14622:43cee970
Show More
widget_int_range.py
51 lines | 2.0 KiB | text/x-python | PythonLexer
Jonathan Frederic
Cleaned up Python widget code.
r14283 """IntRangeWidget class.
Represents a bounded int using a widget.
"""
#-----------------------------------------------------------------------------
# Copyright (c) 2013, the IPython Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
# The full license is in the file COPYING.txt, distributed with this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
Jonathan Frederic
s/Widget/DOMWidget s/BaseWidget/Widget
r14540 from .widget import DOMWidget
Jonathan Frederic
Change orientation to Enum
r14606 from IPython.utils.traitlets import Unicode, CInt, Bool, List, Enum
Jonathan Frederic
Add int range widget
r14241
Jonathan Frederic
Cleaned up Python widget code.
r14283 #-----------------------------------------------------------------------------
# Classes
#-----------------------------------------------------------------------------
Jonathan Frederic
1-to-1 widget / view mapping
r14592 class BoundedIntTextWidget(DOMWidget):
view_name = Unicode('IntTextView', sync=True)
Jonathan Frederic
Add int range widget
r14241
Jonathan Frederic
Cleaned up Python widget code.
r14283 # Keys
Jonathan Frederic
s/Int/CInt s/Float/CFloat
r14603 value = CInt(0, help="Int value", sync=True)
max = CInt(100, help="Max value", sync=True)
min = CInt(0, help="Min value", sync=True)
Jonathan Frederic
sync=True isntead of a keys list
r14588 disabled = Bool(False, help="Enable or disable user changes", sync=True)
Jonathan Frederic
s/Int/CInt s/Float/CFloat
r14603 step = CInt(1, help="Minimum step that the value can take (ignored by some views)", sync=True)
Jonathan Frederic
sync=True isntead of a keys list
r14588 description = Unicode(help="Description of the value this widget represents", sync=True)
Jonathan Frederic
1-to-1 widget / view mapping
r14592
Jonathan Frederic
Added value validation on Python side.
r14605 def __init__(self, *pargs, **kwargs):
"""Constructor"""
DOMWidget.__init__(self, *pargs, **kwargs)
self.on_trait_change(self._validate, ['value', 'min', 'max'])
def _validate(self, name, old, new):
Jonathan Frederic
More PEP8 changes
r14607 """Validate value, max, min."""
Jonathan Frederic
Added value validation on Python side.
r14605 if self.min > new or new > self.max:
self.value = min(max(new, self.min), self.max)
Jonathan Frederic
1-to-1 widget / view mapping
r14592
class IntSliderWidget(BoundedIntTextWidget):
view_name = Unicode('IntSliderView', sync=True)
Jonathan Frederic
Change orientation to Enum
r14606 orientation = Enum([u'horizontal', u'vertical'], u'horizontal',
help="Vertical or horizontal.", sync=True)
Jonathan Frederic
1-to-1 widget / view mapping
r14592
class IntProgressWidget(BoundedIntTextWidget):
view_name = Unicode('ProgressView', sync=True)