hedera-web/js/htk/field/radio-group.js

50 lines
934 B
JavaScript

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;
}
});