61 lines
933 B
JavaScript
61 lines
933 B
JavaScript
|
|
module.exports = new Class
|
|
({
|
|
Extends: Htk.Column
|
|
,Tag: 'htk-column-text'
|
|
,Properties:
|
|
{
|
|
/**
|
|
* Format that applies to the value.
|
|
**/
|
|
format:
|
|
{
|
|
type: String
|
|
,set: function (x)
|
|
{
|
|
this._format = _(x);
|
|
}
|
|
,get: function ()
|
|
{
|
|
return this._format;
|
|
}
|
|
}
|
|
}
|
|
|
|
,_format: null
|
|
|
|
,initialize: function (props)
|
|
{
|
|
this._cssClass = 'cell-text';
|
|
this.parent (props);
|
|
}
|
|
|
|
,render: function (tr)
|
|
{
|
|
var node;
|
|
|
|
if (this.editable)
|
|
{
|
|
var value = this.value ? this.value : '';
|
|
|
|
node = this.createElement ('input');
|
|
node.type = 'text';
|
|
node.value = value;
|
|
node.addEventListener ('changed',
|
|
this.inputChanged.bind (this, tr, node));
|
|
}
|
|
else
|
|
node = this.createTextNode (
|
|
Vn.Value.format (this.value, this._format));
|
|
|
|
var td = this.parent (tr);
|
|
td.appendChild (node);
|
|
return td;
|
|
}
|
|
|
|
,inputChanged: function (tr, node)
|
|
{
|
|
this.changed (tr, node.value);
|
|
}
|
|
});
|