##// END OF EJS Templates
handle undefined when sorting quick help...
handle undefined when sorting quick help since undefined is neither less than nor greater than anything in Javascript, the sort function was treating it as equal to everything, causing inconsistent behavior, depending on the sort algorithm of the browser. This ensures undefined elements are sorted last in the sequence.

File last commit:

r19623:9604d26f
r20837:320fde26
Show More
widget_string.py
95 lines | 3.3 KiB | text/x-python | PythonLexer
Jonathan Frederic
Renamed *Widget to *,...
r17598 """String class.
Jonathan Frederic
Cleaned up Python widget code.
r14283
Represents a unicode string 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
#-----------------------------------------------------------------------------
Sylvain Corlay
registering core widgets
r18531 from .widget import DOMWidget, CallbackDispatcher, register
Jonathan Frederic
Changed children list to CTuple....
r15465 from IPython.utils.traitlets import Unicode, Bool
Jonathan Frederic
Renamed *Widget to *,...
r17598 from IPython.utils.warn import DeprecatedClass
Jonathan Frederic
Add string widget
r14243
Jonathan Frederic
Cleaned up Python widget code.
r14283 #-----------------------------------------------------------------------------
# Classes
#-----------------------------------------------------------------------------
Jonathan Frederic
Renamed *Widget to *,...
r17598 class _String(DOMWidget):
Jonathan Frederic
Added some doc strings on the widgets....
r17602 """Base class used to create widgets that represent a string."""
Jonathan Frederic
sync=True isntead of a keys list
r14588 value = Unicode(help="String value", sync=True)
disabled = Bool(False, help="Enable or disable user changes", sync=True)
description = Unicode(help="Description of the value this widget represents", sync=True)
Jessica B. Hamrick
Add placeholder attribute to text widgets
r16321 placeholder = Unicode("", help="Placeholder text to display when nothing has been typed", sync=True)
Jonathan Frederic
Added TextBox submit event
r14391
Jason Goad
added value positional argument to applicable widgets
r19621 def __init__(self, value=None, **kwargs):
if value is not None:
kwargs['value'] = value
super(_String, self).__init__(**kwargs)
Jonathan Frederic
Added TextBox submit event
r14391
Sylvain Corlay
jupyter -> IPython
r18533 @register('IPython.HTML')
Jonathan Frederic
Renamed *Widget to *,...
r17598 class HTML(_String):
Jonathan Frederic
Added some doc strings on the widgets....
r17602 """Renders the string `value` as HTML."""
MinRK
review pass on Python-side of widgets...
r14793 _view_name = Unicode('HTMLView', sync=True)
Jonathan Frederic
Create base widget classes
r14670
Sylvain Corlay
jupyter -> IPython
r18533 @register('IPython.Latex')
Jonathan Frederic
Renamed *Widget to *,...
r17598 class Latex(_String):
Jonathan Frederic
Added some doc strings on the widgets....
r17602 """Renders math inside the string `value` as Latex (requires $ $ or $$ $$
and similar latex tags)."""
Jonathan Frederic
s/view_name/_view_name
r14701 _view_name = Unicode('LatexView', sync=True)
Jonathan Frederic
1-to-1 widget / view mapping
r14592
Jonathan Frederic
Added TextBox submit event
r14391
Sylvain Corlay
jupyter -> IPython
r18533 @register('IPython.Textarea')
Jonathan Frederic
Renamed *Widget to *,...
r17598 class Textarea(_String):
Jonathan Frederic
Added some doc strings on the widgets....
r17602 """Multiline text area widget."""
Jonathan Frederic
Renamed widgets......
r14834 _view_name = Unicode('TextareaView', sync=True)
Jonathan Frederic
Added TextBox submit event
r14391
Jonathan Frederic
Add scroll_to_bottom method for TextAreaView (StringWidget).
r14393 def scroll_to_bottom(self):
Jonathan Frederic
Fix scroll_to_bottom
r14406 self.send({"method": "scroll_to_bottom"})
Jonathan Frederic
Add scroll_to_bottom method for TextAreaView (StringWidget).
r14393
Sylvain Corlay
jupyter -> IPython
r18533 @register('IPython.Text')
Jonathan Frederic
Renamed *Widget to *,...
r17598 class Text(_String):
Jonathan Frederic
Added some doc strings on the widgets....
r17602 """Single line textbox widget."""
Jonathan Frederic
Renamed widgets......
r14834 _view_name = Unicode('TextView', sync=True)
Jonathan Frederic
1-to-1 widget / view mapping
r14592
Thomas Kluyver
Use more conventional *args naming over *parg
r19623 def __init__(self, *args, **kwargs):
super(Text, self).__init__(*args, **kwargs)
MinRK
review pass on Python-side of widgets...
r14793 self._submission_callbacks = CallbackDispatcher()
Jonathan Frederic
1-to-1 widget / view mapping
r14592 self.on_msg(self._handle_string_msg)
MinRK
review pass on Python-side of widgets...
r14793 def _handle_string_msg(self, _, content):
Jonathan Frederic
More PEP8 changes
r14607 """Handle a msg from the front-end.
Jonathan Frederic
Changed on_submit to use custom messages instead of stateful communcation
r14402
Parameters
----------
content: dict
Content of the msg."""
MinRK
review pass on Python-side of widgets...
r14793 if content.get('event', '') == 'submit':
Jonathan Frederic
Added new CallbackDispatcher class
r14658 self._submission_callbacks(self)
Jonathan Frederic
Changed on_submit to use custom messages instead of stateful communcation
r14402
Jonathan Frederic
Added TextBox submit event
r14391 def on_submit(self, callback, remove=False):
Jonathan Frederic
More PEP8 changes
r14607 """(Un)Register a callback to handle text submission.
Triggered when the user clicks enter.
Jonathan Frederic
Added TextBox submit event
r14391
Parameters
MinRK
review pass on Python-side of widgets...
r14793 ----------
callback: callable
Will be called with exactly one argument: the Widget instance
Jonathan Frederic
Added TextBox submit event
r14391 remove: bool (optional)
MinRK
review pass on Python-side of widgets...
r14793 Whether to unregister the callback"""
Jonathan Frederic
Added new CallbackDispatcher class
r14658 self._submission_callbacks.register_callback(callback, remove=remove)
Jonathan Frederic
Renamed *Widget to *,...
r17598
Jonathan Frederic
Added some doc strings on the widgets....
r17602
# Remove in IPython 4.0
Jonathan Frederic
Renamed *Widget to *,...
r17598 HTMLWidget = DeprecatedClass(HTML, 'HTMLWidget')
LatexWidget = DeprecatedClass(Latex, 'LatexWidget')
TextareaWidget = DeprecatedClass(Textarea, 'TextareaWidget')
TextWidget = DeprecatedClass(Text, 'TextWidget')