module.exports = new Class({ Extends: Htk.Column, Tag: 'htk-column-button', Properties: { image: { type: String ,value: null }, icon: { type: String ,set: function(x) { this._icon = x; this.image = 'image/icon/light/'+ x +'.svg'; } ,get: function() { return this._icon; } }, tip: { type: String, value: null }, disabled: { type: Boolean, value: false }, href: { type: String, value: null }, target: { type: String, value: '' } }, initialize: function(props) { this._cssClass = 'cell-button'; this.parent(props); }, render: function(tr) { var td = this.parent(tr); var button; if (this.href == null) { button = this.createElement('button'); button.addEventListener('click', this.buttonClicked.bind(this, this.value, tr, button)); } else { button = this.createElement('a'); button.href = this.href; button.target = this.target; } button.disabled = this.disabled; td.appendChild(button); var img = this.createElement('img'); img.src = this.image; button.appendChild(img); if (this.tip) { button.title = _(this.tip); img.title = _(this.tip); } return td; }, buttonClicked: function(value, tr, button) { this.signalEmit('clicked', value, tr.rowIndex - 1, button); } });