def on_change(instance, traits, function, weak=None): """ Register a listener to an object. :param traits: either a `string`, `traity.events.listenable`, or a tuple of strings and listenables. :param function: function to call when event with target `target` is triggered. :param instance: The object to listen to events for. """ target = concat_targets(traits, "changed") events(instance).listen(target, function, weak=weak)
def on_change(instance, traits, function, weak=None): ''' Register a listener to an object. :param traits: either a `string`, `traity.events.listenable`, or a tuple of strings and listenables. :param function: function to call when event with target `target` is triggered. :param instance: The object to listen to events for. ''' target = concat_targets(traits, 'changed') events(instance).listen(target, function, weak=weak)
def test_concat_targets(self): self.assertEqual(concat_targets('a', 'b'), ('a', 'b')) self.assertEqual(concat_targets(('a',), 'b'), ('a', 'b')) self.assertEqual(concat_targets('a', ('b',)), ('a', 'b')) self.assertEqual(concat_targets(('a', 'b'), None), ('a', 'b')) self.assertEqual(concat_targets(None, ('a', 'b')), ('a', 'b')) self.assertEqual(concat_targets(('c'), ('a', 'b')), ('c', 'a', 'b')) self.assertEqual(concat_targets(('c','a'), ('b')), ('c', 'a', 'b')) self.assertEqual(concat_targets(None, None), None)
def on_trait_change(traits): """ Statically Register a listener to a class:: @on_trait_change('attr') def attr_changed(self, event): print 'hello!' . """ target = concat_targets(traits, "changed") def decorator(func): if not isinstance(func, StaticListener): func = StaticListener(func) func.add_listener(target, func.function) return func return decorator
def on_trait_change(traits): ''' Statically Register a listener to a class:: @on_trait_change('attr') def attr_changed(self, event): print 'hello!' . ''' target = concat_targets(traits, 'changed') def decorator(func): if not isinstance(func, StaticListener): func = StaticListener(func) func.add_listener(target, func.function) return func return decorator
def decorator(listener): target = concat_targets(self.target, "error") self.add_listener(target, listener) return listener
def decorator(listener): target = concat_targets(self.target, 'error') self.add_listener(target, listener) return listener