Sha256: 43e403059b7bff41449817b4d054595ad53969fa1f2237c95f6f12d6b328e528
Contents?: true
Size: 1.76 KB
Versions: 3
Compression:
Stored size: 1.76 KB
Contents
include('checkbox.js'); (function() { var manager = uki.view.declare('uki.view.Radio', uki.view.Checkbox, function(base) { this._backgroundPrefix = 'radio-'; this.group = uki.newProp('_group', function(g) { manager.unregisterGroup(this); this._group = g; manager.registerGroup(this); manager.clearGroup(this); }); this.value = this.checked = uki.newProp('_checked', function(state) { var changed = this._checked != !!state; this._checked = !!state; if (state) manager.clearGroup(this); this._updateBg(); if (changed) this.trigger('change', {checked: this._checked, source: this}); }); this._mouseup = function() { if (!this._down) return; this._down = false; if (!this._checked && !this._disabled) { this.checked(!this._checked); } } }); manager.groups = {}; manager.registerGroup = function(radio) { var group = radio.group(); if (!manager.groups[group]) { manager.groups[group] = [radio]; } else { manager.groups[group].push(radio); } }; manager.unregisterGroup = function(radio) { var group = radio.group(); if (manager.groups[group]) manager.groups[group] = uki.grep(manager.groups[group], function(registered) { return registered != radio; }); }; manager.clearGroup = function(radio) { uki.each(manager.groups[radio.group()] || [], function(i, registered) { if (registered == radio) return; if (registered.checked()) registered.checked(false); }); }; })();
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
uki-1.1.1 | frameworks/uki/src/uki-view/view/radio.js |
uki-1.1.0 | frameworks/uki/src/uki-view/view/radio.js |
uki-1.0.2 | frameworks/uki/src/uki-view/view/radio.js |