Htk.ColumnSpin = 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 = document.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 = document.createTextNode (valueString); td.appendChild (text); } return td; } ,inputChanged: function (tr, entry) { this.changed (tr, parseInt (entry.value)); } });