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