##// END OF EJS Templates
actually send only one kernel_info request...
actually send only one kernel_info request store the Future for the initial request, allowing subsequent requests to wait on the same pending reply. Previously, any incoming requests that arrived while waiting for the first reply would send their own request.

File last commit:

r18533:b46a0ee8
r18563:0b2c2392
Show More
widget_button.py
72 lines | 2.7 KiB | text/x-python | PythonLexer
Jonathan Frederic
Renamed *Widget to *,...
r17598 """Button class.
Jonathan Frederic
Cleaned up Python widget code.
r14283
Represents a button in the frontend using a widget. Allows user to listen for
click events on the button and trigger backend code when the clicks are fired.
"""
#-----------------------------------------------------------------------------
# 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
Added bootstrap3 progress bar classes
r17729 from IPython.utils.traitlets import Unicode, Bool, CaselessStrEnum
Jonathan Frederic
Renamed *Widget to *,...
r17598 from IPython.utils.warn import DeprecatedClass
Jonathan Frederic
Add button widget
r14270
Jonathan Frederic
Cleaned up Python widget code.
r14283 #-----------------------------------------------------------------------------
# Classes
#-----------------------------------------------------------------------------
Sylvain Corlay
jupyter -> IPython
r18533 @register('IPython.Button')
Jonathan Frederic
Renamed *Widget to *,...
r17598 class Button(DOMWidget):
Jonathan Frederic
Added some doc strings on the widgets....
r17602 """Button widget.
This widget has an `on_click` method that allows you to listen for the
user clicking on the button. The click event itself is stateless."""
Jonathan Frederic
s/view_name/_view_name
r14701 _view_name = Unicode('ButtonView', sync=True)
Jonathan Frederic
Cleaned up Python widget code.
r14283
# Keys
Sylvain Corlay
adding a tooltip in IPython buttons
r18115 description = Unicode('', help="Button label.", sync=True)
tooltip = Unicode(help="Tooltip caption of the button.", 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
Added Bootstrap specific classes,...
r17728
button_style = CaselessStrEnum(
values=['primary', 'success', 'info', 'warning', 'danger', ''],
default_value='', allow_none=True, sync=True, help="""Use a
predefined styling for the button.""")
Jonathan Frederic
Add button widget
r14270
Jonathan Frederic
Fixed button on_click handler so it's initiated on instanciation
r14315 def __init__(self, **kwargs):
Jonathan Frederic
More PEP8 changes
r14607 """Constructor"""
Jonathan Frederic
Renamed *Widget to *,...
r17598 super(Button, self).__init__(**kwargs)
MinRK
review pass on Python-side of widgets...
r14793 self._click_handlers = CallbackDispatcher()
Jonathan Frederic
Changed button to use custom messages instead of state to communicate events.
r14400 self.on_msg(self._handle_button_msg)
Jonathan Frederic
Add button widget
r14270
Jonathan Frederic
Fixed button widget click event handler/
r14272 def on_click(self, callback, remove=False):
MinRK
review pass on Python-side of widgets...
r14793 """Register a callback to execute when the button is clicked.
Jonathan Frederic
More PEP8 changes
r14607
MinRK
review pass on Python-side of widgets...
r14793 The callback will be called with one argument,
the clicked button widget instance.
Jonathan Frederic
Cleaned up Python widget code.
r14283
Parameters
----------
remove : bool (optional)
Jonathan Frederic
Updated ButtonWidget onclick description
r14320 Set to true to remove the callback from the list of callbacks."""
Jonathan Frederic
Added new CallbackDispatcher class
r14658 self._click_handlers.register_callback(callback, remove=remove)
Jonathan Frederic
Add button widget
r14270
MinRK
review pass on Python-side of widgets...
r14793 def _handle_button_msg(self, _, content):
Jonathan Frederic
More PEP8 changes
r14607 """Handle a msg from the front-end.
Jonathan Frederic
Changed button to use custom messages instead of state to communicate events.
r14400
Parameters
----------
content: dict
Content of the msg."""
MinRK
review pass on Python-side of widgets...
r14793 if content.get('event', '') == 'click':
Jonathan Frederic
Added new CallbackDispatcher class
r14658 self._click_handlers(self)
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 ButtonWidget = DeprecatedClass(Button, 'ButtonWidget')