##// END OF EJS Templates
Prepend a sentinel value to model ids to distinguish them from normal UUIDs (from Sylvain Corlay).
Prepend a sentinel value to model ids to distinguish them from normal UUIDs (from Sylvain Corlay).

File last commit:

r16321:1582557b
r17262:c92948b7
Show More
widget_string.py
73 lines | 2.5 KiB | text/x-python | PythonLexer
Jonathan Frederic
Cleaned up Python widget code.
r14283 """StringWidget class.
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
#-----------------------------------------------------------------------------
Jonathan Frederic
Added new CallbackDispatcher class
r14658 from .widget import DOMWidget, CallbackDispatcher
Jonathan Frederic
Changed children list to CTuple....
r15465 from IPython.utils.traitlets import Unicode, Bool
Jonathan Frederic
Add string widget
r14243
Jonathan Frederic
Cleaned up Python widget code.
r14283 #-----------------------------------------------------------------------------
# Classes
#-----------------------------------------------------------------------------
Jonathan Frederic
Create base widget classes
r14670 class _StringWidget(DOMWidget):
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
Jonathan Frederic
Create base widget classes
r14670 class HTMLWidget(_StringWidget):
MinRK
review pass on Python-side of widgets...
r14793 _view_name = Unicode('HTMLView', sync=True)
Jonathan Frederic
Create base widget classes
r14670
class LatexWidget(_StringWidget):
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
Jonathan Frederic
Renamed widgets......
r14834 class TextareaWidget(_StringWidget):
_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
Jonathan Frederic
Renamed widgets......
r14834 class TextWidget(_StringWidget):
_view_name = Unicode('TextView', sync=True)
Jonathan Frederic
1-to-1 widget / view mapping
r14592
def __init__(self, **kwargs):
Jonathan Frederic
Renamed widgets......
r14834 super(TextWidget, self).__init__(**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)