module.exports = new Class ({ Extends: Htk.Column ,Tag: 'htk-column-spin' ,Properties: { /** * The text to append to the number. */ unit: { type: String ,value: null }, /** * The number of decimal places to display. */ digits: { type: Number ,value: 0 } } ,initialize: function(props) { this._cssClass = 'cell-spin'; this.parent(props); } ,renderHeader: function() { var th = this.parent(); th.className = 'cell-spin'; return th; } ,render: function(tr) { var td = this.parent(tr); var valueString = null; if (this.value !== null && this.value !== undefined) valueString = new Number(this.value).toFixed(this.digits); if (this.editable) { var entry = this.createElement('input'); entry.type = 'text'; entry.addEventListener('change', this.inputChanged.bind(this, tr, entry)); td.appendChild(entry); if (valueString) entry.value = valueString; } else if (valueString) { if (this.unit) valueString = valueString + this.unit; var text = this.createTextNode(valueString); td.appendChild(text); } return td; } ,inputChanged: function(tr, entry) { this.changed(tr, parseInt(entry.value)); } });