0
1
Fork 0
hedera-web-mindshore/web/js/htk/column.js

102 lines
1.4 KiB
JavaScript
Executable File

/**
* 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);
}
});