##// END OF EJS Templates
first shot at adding list of key symbols, need to format nicely
first shot at adding list of key symbols, need to format nicely

File last commit:

r19390:e461f122
r20054:68a4f5d3
Show More
widget_link.py
61 lines | 1.9 KiB | text/x-python | PythonLexer
"""Link and DirectionalLink classes.
Propagate changes between widgets on the javascript side
"""
#-----------------------------------------------------------------------------
# Copyright (c) 2014, 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
#-----------------------------------------------------------------------------
from .widget import Widget
from IPython.utils.traitlets import Unicode, Tuple, Any
#-----------------------------------------------------------------------------
# Classes
#-----------------------------------------------------------------------------
class Link(Widget):
"""Link Widget"""
_model_name = Unicode('LinkModel', sync=True)
widgets = Tuple(sync=True, allow_none=False)
def __init__(self, widgets=(), **kwargs):
kwargs['widgets'] = widgets
super(Link, self).__init__(**kwargs)
# for compatibility with traitlet links
def unlink(self):
self.close()
def link(*args):
return Link(widgets=args)
class DirectionalLink(Widget):
"""Directional Link Widget"""
_model_name = Unicode('DirectionalLinkModel', sync=True)
targets = Any(sync=True)
source = Tuple(sync=True)
# Does not quite behave like other widgets but reproduces
# the behavior of IPython.utils.traitlets.directional_link
def __init__(self, source, targets=(), **kwargs):
kwargs['source'] = source
kwargs['targets'] = targets
super(DirectionalLink, self).__init__(**kwargs)
# for compatibility with traitlet links
def unlink(self):
self.close()
def dlink(source, *targets):
return DirectionalLink(source, targets)