/** * Represents a grid column. This is an abstract class and should not be * instantiated directly. **/ Htk.Column = new Class ({ Extends: Vn.Object ,Tag: 'htk-column' ,Parent: 'grid' ,Properties: { value: { type: String ,value: null }, column: { type: String ,value: null }, columnIndex: { type: Number ,value: -1 }, title: { type: String ,value: null }, editable: { type: Boolean ,value: false }, renderer: { type: Function ,value: false }, class: { type: String ,set: function (x) { this._class = x; } ,get: function () { return this._class; } }, grid: { type: Htk.Grid ,set: function (x) { if (x) x.appendColumn (this); } } } /** * Initializes the column. **/ ,initialize: function (props) { this.parent (props); this.td = document.createElement ('td'); } /** * Draws the cell and returns its associated td. * * @param {HTMLTableRow} tr the table row * @return {HTMLTableData} the rendered cell **/ ,render: function (tr) { var td = this.td.cloneNode (true); if (this._class) td.className = this._class; return td; } ,updateColumnIndex: function (model) { if (this.column) this.columnIndex = model.getColumnIndex (this.column); } ,changed: function (tr, newValue) { this.signalEmit ('changed', tr.rowIndex - 1, newValue); } });