Sha256: 50cb9fe8efe2e85c9e215ec8ea1e210a089cfea2b1463807851bf9e2bcdf188b
Contents?: true
Size: 1.61 KB
Versions: 4
Compression:
Stored size: 1.61 KB
Contents
/* --- script: Invokable.js description: Makes widget submit into another widget license: Public domain (http://unlicense.org). authors: Yaroslaff Fedin requires: - LSD.Mixin provides: - LSD.Mixin.Invokable ... */ LSD.Mixin.Invokable = new Class({ options: { chain: { feedback: function() { return { action: 'submit', target: this.getSubmissionTarget, arguments: this.getSubmissionData, priority: -5 } } }, states: Array.object('invoked'), events: { _invokable: { submit: function() { this.revoke(true); }, cancel: 'revoke', setParent: function(widget) { this.invoke(widget) }, unsetParent: 'revoke' } } }, onMix: function() { var invoker = this.invoker || this.options.invoker; if (invoker) this.invoke(invoker); }, invoke: function(invoker) { console.error('invoked', invoker.tagName); this.invoker = invoker; this.fireEvent('invoke', arguments); this.fireEvent('register', ['invoker', invoker]); }, revoke: function(soft) { console.error('revoked'); var invoker = this.invoker; if (soft !== true) this.invoker.uncallChain(); this.fireEvent('revoke', invoker); this.fireEvent('unregister', ['invoker', invoker]); }, getInvoker: function() { return this.invoker; }, getSubmissionTarget: function() { return this.getInvoker(); }, getSubmissionData: function() { return this.getData ? this.getData() : null; } }); LSD.Behavior.define(':invokable', 'invokable');
Version data entries
4 entries across 4 versions & 1 rubygems