module.exports = new Class ({ Extends: Htk.Field ,Tag: 'htk-radio-group' ,radioLock: false ,initialize: function (props) { this.clear (); this.on ('changed', this._onRadioGroupChange, this); this.parent (props); } ,clear: function () { this.name = Math.random ().toString (); this.buttons = []; } ,_onRadioGroupChange: function () { for (var i = 0; i < this.buttons.length; i++) if (this.buttons[i].value == this._value) this.buttons[i].checked = true; } ,_onRadioChange: function (value) { if (this.radioLock) return; this.radioLock = true; this.value = value; this.radioLock = false; } ,createButton: function (value) { var radio = Vn.Browser.createRadio (this.name, this.doc); radio.value = value; radio.checked = value == this.value; radio.addEventListener ('change', this._onRadioChange.bind (this, value)); this.buttons.push (radio); return radio; } });