51 lines
900 B
JavaScript
51 lines
900 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);
|
|
}
|
|
});
|